Automated pricing system

ABSTRACT

The present invention comprises a method and system for a rapid and automated creation of a price schedule comprising steps and an implementation for providing a set of construction (or other) plans created with an architectural, civil, industrial or other software design tool, such as CAD, and optionally a palette of 2-dimensional and/or 3-dimensional architectural parametric symbols that correspond to respective construction plan elements, such as windows, doors, acrylic glass blocks and/or sky lights. At least one parametric symbol corresponding to a construction plan element is preferably inserted into the construction plans. A cost value for each of the inserted parametric symbols is preferably calculated corresponding to respective plan elements. A price schedule is then optionally created which includes the total cost for all of the inserted parametric symbols corresponding to respective plan elements.

This application is a continuation of U.S. patent application Ser. No.12/803,404 filed on Jun. 25, 2010 (now U.S. Pat. No. 8,266,005), whichis a continuation-in-part of U.S. patent application Ser. No. 12/004,187filed on Dec. 20, 2007 (now U.S. Pat. No. 7,783,523), which is acontinuation-in-part of U.S. patent application Ser. No. 10/346,989filed on Jan. 17, 2003 (now U.S. Pat. No. 7,337,151), all the foregoingof which are fully incorporated herein by reference.

BACKGROUND OF THE INVENTION

1. Field of the Invention

In a typical construction design, a set of construction plan drawingsare generated, usually with a computer-implemented tool, such as anarchitectural CAD (Computer Aided Design) software product.Disadvantageously, the various elements and materials of theconstruction project, for example, windows, doors, skylights, acrylicglass blocks and the like, are priced out in estimating the cost of thejob in a completely separate process, and usually only by onemanufacturer. This separate process very disadvantageously adds asignificant amount of time and effort to the process of generating aconstruction job price. Also very disadvantageously, because differentconstruction materials of varying quality and cost can generally be usedon the same construction job or project, the cost amounts that are setforth on a price schedule that is generated by this separate process canvary by a very wide margin. Further, and also disadvantageously, in theevent that the price schedule needs to be changed, for example, due tocost overruns, competitive bidding and/or other factors, a new priceschedule must be generated, with an additional significant investment oftime and effort involved for each such revision. Again, this adds asignificant amount of extra expense to a construction project, and thistypical process limits the flexibility in selected various constructionmaterials for contractors and end-use customers.

It is important to provide a price, rather than an estimate, for aproposed construction project. In order for a bank (or other lendinginstitution) to approve a construction loan for a proposed constructionproject, the bank generally requires an accurate price for theconstruction project, and will not rely upon an estimate, becauseestimates are often extremely inaccurate. If a bank does accept anestimate, and the estimate turns out to be lower than the final pricefor the construction project, the bank, which has control in such asituation, may then additionally charge large points and/or fees for theconstruction loan, substantially raising the price of the constructionproject, which is very undesirable. If the estimate turns out to belower than the final price, this often results in construction costoverruns, construction time delays and dissatisfaction of customers.

Most of the time when architectural plans are drawn, the plans are drawninaccurately. If an architectural plan is drawn inaccurately, and aprice is provided for a corresponding construction project, thissituation generally presents significant problems with respect toconstruction cost overruns, construction time delays and thesatisfaction of customers (homeowners or building owners).

It was a goal of the present invention to solve the above-describedproblems.

2. Description of the Art

Wakelam et al. (U.S. Pat. No. 6,859,768 B1) describe acomputer-implemented automated building design and modeling system(“DMES system”) that includes a database (column 4, lines 30-32) thatprovides a central source for all design and construction informationfor a construction project (abstract, column 1, lines 57-67, and claim1). Ordinary elements and massing elements are assembled into a buildingmodel according to a sequential assembly hierarchy, “thus assembling acomplete building model automatically . . . ” (abstract and claim 11).Software for a commercially-available “cost estimating system”(represented as 112 in the figures), as well as software for severalother systems that may be employed in a network implementation of theDMES system, is stored on a hard drive of a computer (FIG. 1 and column7, lines 45-62). The “cost estimating system” produces a cost estimate(not a price), which is implemented using Ice 2000 computer software.

In contrast with the present invention, Wakelam et al. do not describethe production of a “price quote” or a “price schedule.” It is clearfrom a detailed review of Wakelam et al. that the systems and processesdescribed therein only produce an estimate (a “cost estimate”), which isfor a production of an entire building. (See, for example, FIGS. 2g, 2h,2i, 2j, 2k and 6b, the abstract, Appendix A, and column 1, lines 51-54,column 3, lines 42-46, column 7, lines 37-43, column 9, lines 8-31, andthe claims of Wakelam et al.).

The “cost estimating system” that is described by Wakelam et al. forproducing cost estimates is one of several different systems that areimplemented with the DMES system described therein, and is a knowncomputer software named “Ice 2000” that is commercially available fromMC² Management Computer Controls, Inc., and described on the MC²Management Computer Controls, Inc. mc2-ice web site (column 7, lines55-58).

Also, in contrast with the present invention, Wakelam et al. does notdescribe an ability to determine a price quote or price schedule foronly one or two construction plan elements, such as only a window, oronly a window and a door. It is clear from a detailed review of Wakelamet al. (including FIGS. 1-6) that the processes and systems that aredescribed therein only provide a “cost estimate” (only a “ball park”figure regarding what the actual cost of designing and building abuilding may be) for the production of an entire building (i.e., not forindividual construction products, such as a window, a door, an acrylicglass block, a sky light or the like). The cost estimate for the entirebuilding includes cost estimate data for a wide variety of materials,components and labor, such as electrical devices, equipment and wiring,lights, HVAC systems, elevators, and man hours of labor involved in thefabrication of the building, as well as construction products, such aswindows and doors.

As a result of the above difference, the methods and systems of thepresent invention are advantageously much more versatile than themethods and systems that are described by Wakelam et al. For example,the present invention can be employed in small or large residential orcommercial remodeling construction projects, as well as for constructingentire new residential or commercial buildings. In contrast, the methodsand systems described by Wakelam et al. can only be used for theconstruction of an entire new building.

Also in contrast with embodiments within the present invention, Wakelamet al. does not describe a process or system having a plug-in (add-on)computer software code that runs as an internal component within asoftware design tool on a local computer, such as architectural CAD, butrather uses a stand alone, interview-based system, and a commerciallyavailable cost estimation software named Ice 2000. It is clear from adetailed review of Wakelam et al. that the processes and systems thatare described therein are stand-alone processes and systems that canwork in a network along with the DMES system.

Moreover, Wakelam et al., which describe a very complicated system thatis employed to construct an entire building using a series of multipletiers and hierarchies, teach away from the use of architectural CAD (asoftware design tool) by stating the following at Column 4, Lines 38-59,and Column 18, Lines 7-23, respectively:

-   -   “ . . . In contrast to a conventional CAD tool, which uses        software algorithms that scan and sort the locations and extents        of all three-dimensional primitive geometries in a building        model and compares all of the locations thereof for potential        overlaps, the DMES system of the present invention performs        clash detection, or interference checking, by cross-checking the        location and extents of a current instance of an object against        only those other existing instances in the model, i.e., the        spatial database, and adjusting its position if necessary before        assembling it into the model. This automatic clash detection is        part of the assembly code included in each massing element and        each element uses its own specific functions to determine the        parameters of a clash and the rules by which to reposition the        instance. This process has a small incremental impact on the        speed of the assembly process, but completely removes the need        for a series of long clash detection exercises after the model        is complete.” [Emphasis added.]    -   “ . . . In contrast to a conventional CAD tool, which uses        software algorithms that scan and sort the locations and extents        of all three-dimensional primitive geometries in a building        model and compares all of the locations thereof for potential        overlaps, the DMES system of the present invention performs        clash detection, or interference checking, by cross checking the        location and extents of the current instance against only those        other existing instances in the model and adjusting its position        if necessary before assembling it into the model. This automatic        clash detection is part of the assembly process in each massing        element and each element uses its own specific functions to        determine the parameters of a clash and the rules by which to        reposition the instance. This process has a small incremental        impact on the speed of the assembly process, but completely        removes the need for a series of long clash detection exercises        after the model is complete.” [Emphasis added.]

3.

Further, in contrast with embodiments within the present invention,Wakelam et al. does not describe a process or system that employs a zipcode of a construction site to access price data from a web site on aremote server system, an external or other physical storage medium orthe like. Wakelam et al. does not describe a process or system thatemploys a web site that includes price data for a purchase of one ormore construction plan elements in a geographical location within a zipcode or otherwise. Further, in contrast with the “cost estimates”described by Wakelam et al., the price data described herein can berelied upon to purchase one or more construction plan (or other)elements.

In contrast with embodiments within the processes and systems of theinvention, the processes and systems that are described by Wakelam etal. are very complicated (perhaps because an entire building is beingassembled), and include an assembly hierarchy having five or more tiers.

Further, in contrast with embodiments within the present invention,Wakelam et al. do not describe: (a) an insertion of a price scheduleinto a construction plan; (b) a price schedule that contains a list ofconstruction plan elements with corresponding price quotes; (c) aplacing of an order to purchase one or more construction plan elements;(d) a placing of an order to purchase one or more construction planelements using a local computer or a web site on a remote server, orboth; (e) a placing of an order to purchase one or more constructionplan elements using a credit card and a local computer or a web site ona remote server, or both; or (f) a creation of a price scheduleincluding one or two construction plan elements.

U.S. Pat. No. 6,446,053 B1 (Elliott) describes a computer-implementedmethod and system for producing a proposal for a construction project(title). The system includes a central site with various databases and auser site connected for electronic communication over a networkedcommunication system such as the Internet (abstract). The user siteincludes a computer having stored in memory an application that enablesa user to develop a construction proposal including a detailed graphicalmodel and a detailed cost estimate model, have the proposal submittedelectronically over a networked communication system to a constructionprofessional for a bid, and receive a response on the proposal from theconstruction professional over the networked communications system(abstract). The application educates the user as it guides the userthrough a series of construction phases and steps, prompting the user toinput critical information and make appropriate selections throughoutthe series of phases and steps (abstract). The method and system providea proposal and a cost “estimate,” not a final price (abstract).

In contrast with embodiments within the methods and systems of thepresent invention, Elliott: (1) does not employ a plug-in (add-on)computer software code that runs as an internal component within asoftware design tool on a local computer, such as architectural CAD (butrather uses a stand alone, interview-based system); (2) does not insertparametric symbols into a construction plan; (3) does not, using anadd-on computer software code, transmit data corresponding to insertedparametric symbols from a local computer over the Internet to a remoteserver system; (4) use a zip code and an add-on computer software codeto access price data from a web site on a remote server system; or (5)determine from price data a price quote for each of several constructionelements, but rather provides only a cost estimate.

Both Wakelam et al. and Elliott use stand alone computer software forcost estimation that does not include an add-on (plug-in) computersoftware code. Wakelam et al. uses commercially available Ice 2000(column 7, lines 55-58), and Elliott uses a software package (not named)that is “preferably installed on the hard disc of a user's computer”(column 5, lines 25-27).

Further, Elliott does not teach or suggest the creation of aconstruction plan using a software design tool, such as architecturalCAD. In contrast, Elliott describes (col. 6, lines 43-50, and col. 10,lines 20-24) the scanning of a photograph or construction plan into auser's computer to produce a digital image, which is a completelydifferent process.

Additionally, the systems of both Wakelam et al. and Elliott provideonly an “estimate” for the products described therein, and not a finalprice. This is a very important distinction between the presentinvention and the teachings of Wakelam et al. and Elliott. For thereasons that follow, it is important to obtain a price, rather than anestimate. Generally, lending institutions will not rely upon an“estimate” when considering whether or not to make a construction loanbecause estimates are often extremely inaccurate, and such inaccuracyoften results in large construction cost overruns and significantconstruction time delays. Further, a price is binding upon the person orentity that provides the price, whereas an estimate does not bind aperson or entity to a particular price. Therefore, a person or entitythat provides a price must honor their price (or may be sued for notdoing so), even if the construction job for which the price was quotedends up costing significantly more money than the price quoted, causingthe person or entity that quoted the price to lose a significant amountof money. This is not true of an estimate, which does not bind a personor entity to a particular price. As can be seen, it is significantlymore risky to provide a price in comparison with an estimate, which isthe reason why contractors generally only provide estimates (i.e., theydo not want to be bound to a particular price). Further, it is a muchmore complex process to provide a price (an assigned amount of moneythat is required to be paid in order to make a purchase) in comparisonwith an estimate (a rough calculation). Elliott itself acknowledges thisfact by stating, “Calculating the material quantities and costs [oflarge construction projects] can be very complicated” (column 1, lines25-26).

Moreover, neither Wakelam et al. nor Elliott teach or suggest the use ofa zip code to determine price data for one or more construction planelements. Although Elliott discusses zip codes, such discussion onlyrelates to the average labor rate, the average price of land, theaverage cost of builder's risk insurance and building permit costs, notto construction plan elements (col. 4, lines 44-62). The foregoing itemsare completely different from construction plan elements, and thepricing of the foregoing items would be completely different from thepricing of construction plan elements.

In contrast with embodiments within the present invention, neitherWakelam et al. nor Elliott teach or suggest any of the following:

(1) inserting a price schedule into a construction plan;

(2) a price schedule that contains a list of construction plan elementswith corresponding price quotes;

(3) the use of a CAD (Computer Aided Design) software product to createa construction plan;

(4) an add-on computer software code that imbeds a price schedule into aconstruction plan;

(5) the creation of a price schedule that includes one or twoconstruction plan elements; or

(6) a plug-in (add-on) computer software code and a web site that permita user to place an order to purchase one or more of the constructionplan elements that are present in a price schedule.

U.S. Pat. No. 6,810,401 B2 (Thompson et al.) describes an automatedconfiguration system (and method) for facilitating the configuration ofdesired products, services, or other assemblages that require users togather and assimilate disparate knowledge of makes, models, types,features, codes, and prices of the desired product/service to beconfigured (abstract). In accordance with a preferred embodiment,configuration is facilitated through interaction of a user with a frameengine that performs frame-based inferences to discern stored knowledgeof a product (or the like), as supplemented by a rules-based inferencesystem (column 1, lines 30-34).

In contrast with embodiments within the methods and systems of thepresent invention, Thompson et al. describe a configuration system thatdoes not use a plug-in (add-on) computer software code that runs as aninternal component within a software design tool on a local computer,such as architectural CAD. Further, a construction product, such as awindow or door, cannot be drawn in architectural CAD using the Thompsonet al. system because the Thompson et al. system does not work inarchitectural CAD. In contrast, a construction product may only be cutand pasted into architectural CAD (in the same manner that a picture canbe cut and pasted into a Word document). The configuration system ofThompson et al. is just drawing a picture on a computer. Moreover, theThompson et al. system can only provide a price for one type of aconstruction product, such as a window, at a time, and provides a veryslow process for providing such price. For example, in contrast with themethods and systems of the present invention, the system of Thompson etal. cannot provide a price for both a window and a door at the sametime, or using the same computer software. Very disadvantageously, theThompson et al. system must use a different type of software for eachdifferent type of construction product, for example, four differentsoftwares for a window, a door, an acrylic glass block and a sky light,which is very time consuming and expensive.

In contrast with the Thompson et al. system, embodiments within themethods and system of the present invention uses a plug-in (add-on)computer software code that runs as an internal component within asoftware design tool on a local computer, such as architectural CAD. Aproduct, such as a bay window, can be drawn in architectural CAD, andmay then be imbedded into a wall of a room or structure, such as a GreatRoom. The window preferably gets sized, and then may optionally be“burned” into a wall, so that one can clearly see exactly what thewindow will look like when it is added to the room and embedded into thewall. The “burning” of the window into the wall is a function of theplug-in (add-on) computer software code that runs as an internalcomponent within the architectural CAD program (or otherwise). Thesystem that is described by Thompson et al. does not do this. Suchsystem is not working in architectural CAD. Further, with the methodsand systems of the present invention, changes may be made to the window(while embedded into the wall in a room or otherwise), and the changesto the window can then be clearly viewed (while the window is embeddedinto the wall in a room or otherwise). These methods and systems canprovide a price (a final price, and not an estimate) very rapidly forone or more different types of construction or other products, which is“tricky” (i.e., not easily accomplished). With the methods and systemsof the present invention, it is possible to obtain a price for aconstruction (or other) product, such as a window or door, from as manyas fifteen or more different manufacturers and/or distributors (orothers) at the same time, an average price in the geographic (or other)area, or any other type of a desired or required price. Further, thepresent invention optionally may use a zip code to obtain, and provide,price data for the purchase of one or more construction (or other)products, which includes a subtotal, tax and a final price. Veryadvantageously, the construction (or other) products can be purchasedthe same day (i.e. immediately).

None of Thompson et al., Wakelam et al. or Elliott teach or suggest anyof the following steps, elements or limitations of embodiments withinthe methods and systems of the present invention:

-   -   (1) using an add-on (plug-in) computer software code that runs        as an internal component within a software design tool on a        local computer;    -   (2) an insertion of parametric symbols into a construction plan;    -   (3) using the add-on computer software code, transmitting data        corresponding to each inserted parametric symbol from a local        computer over the Internet to a remote server system;    -   (4) using a zip code and an add-on computer software code to        access price data from a web site on a remote server system; or    -   (5) creating a price schedule from price quotes.

Further, Thompson et al. does not teach or suggest: (1) providing aconstruction plan on a local computer; (2) creating a construction planwith a software design tool; or (3) providing on a local computer apalette that includes at least one parametric symbol.

The products that are described by Thompson et al. cannot be drawn in anarchitectural CAD (or other) software design tool. In contrast, they mayonly be assembled in such a tool by an architect (a different user witha different computer). With the use of human intervention (i.e. noautomation), drawings that are created by the Thompson et al. system canbe sent or exported to an architect, for example, using e-mail, and thearchitect can then cut and paste the drawings into an architectural CADprogram that the architect is using. The Thompson et al. system merelyallows one to cut and paste drawings of products into a CAD program. Forexample, a window could be drawn in Microsoft Word using its drawingtools, and such drawing could be considered to be a CAD drawing becauseit is a “computer assisted drawing” (i.e., a computer assists a user indrawing the window). Further, the drawing could be e-mailed to anarchitect to be inserted into an architectural CAD program. However, incontrast with the methods and systems of the present invention, the useris not working in an architectural CAD program, and the drawing is notan add-on to an architectural CAD program.

In contrast with the above, the methods and systems of the presentinvention perform one or more sets of operations in a software designtool, such as architectural CAD, using an add-on (plug-in) computersoftware program. With this invention, no human intervention isgenerally required or desired (i.e., it is automated), and drawings canbe “burned” (inserted) into a construction plan that has been designedusing an architectural CAD program (or other software design tool).

Further, the Thompson et al. system can only be employed with one singleproduct type, such as a window, whereas the methods and systems of thepresent invention can draw and price multiple different projects, suchas a window, a door and an acrylic glass block, and rapidly providecomparison pricing for the various products from multiple differentmanufacturers and/or distributors (or others).

Moreover, like Wakelam et al. and Elliott, Thompson et al. does notteach or suggest the use of a zip code to determine price data for oneor more construction plan (or other) elements. Additionally, Thompson etal. do not teach or suggest:

(1) placing an order to purchase one or more of the construction plan(or other) elements that are present in a price schedule (because noprice schedule is created by Thompson et al.); or

(2) a system wherein an add-on (plug-in) computer software code and aweb site permit a user to place an order to purchase one or moreconstruction plan (or other) elements.

U.S. Patent Application Publication No. 2001/0047250 A1 (Schuller etal.) describes a computer-implemented method of visualizing a decoratingproject (abstract). The method includes rendering an image of a buildingspace (e.g., a room) that includes a number of structural objects (suchas doors, walls, and furniture) (abstract). The structural objects maybe portrayed in the rendered image with visual characteristics that aredetermined by decorative materials (such as paint, fabric, or wallpaper)associated with the objects (abstract). Schuller et al. also describe acomputer-implemented decorating system that includes a serveroperatively coupled to a memory, a database, and a network over whichdata can be exchanged with client computers (abstract). The memoryincludes software instructions to configure the server to retrievemodeling software from the database in response to requests from clientcomputers, and to send the modeling software over the network to theclient computers (abstract). The modeling software includes instructionsto configure the client computers to model structural objects, toassociate decorative materials with the structural objects, and torender an image of a building space (abstract). The rendered imageportrays structural objects in accordance with visual characteristic ofassociated decorative materials (abstract).

In contrast with embodiments within the methods and systems of thepresent invention, the decorating system of Schuller et al.: (1) doesnot employ a plug-in (add-on) computer software code that runs as aninternal component within a software design tool on a local computer,such as architectural CAD but, rather, uses a stand alone computerprogram; and (2) does not employ a zip code to provide any prices.Although Schuller et al. state that their implementations can includeautomated purchasing [of structural objects and decorative materials],Schuller et al. do not describe how this may be accomplished.

None of Thompson et al., Wakelam et al., Elliott or Schuller et al.teach or suggest any of the following steps, elements or limitations ofembodiments within the present invention:

-   -   (1) using an add-on (plug-in) computer software code that runs        as an internal component within a software design tool on a        local computer (or otherwise);    -   (2) an insertion of parametric symbols into a construction plan;    -   (3) using the add-on computer software code, transmitting data        corresponding to each (or one or more) inserted parametric        symbol from a local computer over the Internet to a remote        server system, or to an external, internal or other database (or        otherwise);    -   (4) using a zip code and an add-on computer software code to        access price data from a web site on a remote server system or        from an external, internal or other database (or otherwise); or    -   (5) creating a price schedule from one or a plurality of price        quotes.

Additionally, Schuller et al. do not teach or suggest: (1) providing aconstruction plan on a local computer; (2) creating a construction planwith a software design tool; or (3) providing on a local computer apalette that includes at least one parametric symbol.

The teachings of Schuller et al. are clearly limited to thevisualization of a decoration project (page 1, paragraphs [0006] and[0007]), and do not discuss construction projects.

Further, the “input images” that are discussed by Schuller et al. areobtained using a “digital image capture device,” such as a scanner,digital camera or video signal capture device, and not a software designtool, such as CAD (page 1, paragraph [0009]).

The method and system of Schuller et al., which are drawn to thedecoration of a room with, for example, paint, wallpaper and fabric(page 2, paragraphs [0023] and [0028]), are much simpler, and quitedifferent, in comparison with the methods and systems of the presentinvention, which are drawn to construction projects, and the pricing ofone or more construction elements. Such pricing is quite “tricky” (i.e.,is not easily accomplished).

Like Wakelam et al., Elliott and Thompson et al., Schuller et al. do notteach or suggest the use of a zip code to determine price data for oneor more construction plan elements.

While Schuller et al. do discuss an automatic purchasing of furnishingsand decorating materials (page 5, paragraph [0049], page 7, paragraph[0067], and claims 11, 12, 29 and 30), Schuller et al. do not specifythe mechanism that is employed to procure pricing for such purchasing.The teachings that are present in Schuller et al. regarding an automatedpurchasing are very vague.

Moreover, Schuller et al. do not teach or suggest the use of an add-on(plug-in) computer software code to a software design tool that permitsa user to pay for an order using a credit card.

A need in the architectural, construction and other industries currentlyexists for rapidly, efficiently and cost-effectively generating, andmodifying, a set of construction (or other) plans for one or moreconstruction (or other) elements, and a corresponding price quoteschedule for such construction (or other) elements, in one generalprocess, wherein a user can rapidly procure one, two, three, four, fiveor more comparative prices from one, two, three, four, five or moredifferent manufacturers, distributors or others, which may becompetitors, to determine the “best” (most competitive) final price forthe various construction (or other) elements that will be used in theset of construction (or other) plans.

SUMMARY OF THE INVENTION

Very advantageously, the present invention provides methods and systemsfor rapidly, efficiently and cost-effectively generating, and modifying,a set of residential or commercial construction (or other) plan drawingsfor one or more construction (or other) elements, and optionally acorresponding price quote schedule for such construction (or other)elements, in one general process, wherein a user can rapidly procureone, two, three, four, five or more comparative prices from one, two,three, four, five or more different manufacturers, distributors and/orothers (individuals, corporations, partnerships, other businesses,entities, organizations, universities, computers, computer systems,and/or the like) that can provide such information, either directly orindirectly, which may be competitors, to determine the “best” (mostcompetitive), average or other “real time” final price for the variousconstruction (or other) elements that may be used in the set ofconstruction, architectural, civil engineering, industrial engineering(or other) plans.

The difficulties and drawbacks that are associated with theabove-described systems are advantageously overcome by the presentinvention, which is a method and system for an automated creation of aprice schedule for a construction or other project. The presentinvention comprises steps and an implementation for providing a set ofone or more construction plan (or other) drawings created with asoftware design tool and optionally a palette of one or a plurality ofarchitectural 2D and/or 3D parametric symbols corresponding to one ormore respective construction elements. Optionally, but preferably, atleast one parametric symbol (generic or manufacturer/distributor/otherspecific) corresponding to each construction element is inserted intothe construction plan drawings. A cost value for one or more (andpreferably each) of the inserted parametric symbols (and/or of theconstruction plan elements) is calculated corresponding to respectiveconstruction elements. A price schedule may optionally be automatically,manually and/or otherwise created including the total (or other) costfor one or more, or all, of the inserted parametric symbolscorresponding to respective construction elements (or for one or moreconstruction elements if no palette of parametric symbols is employed),using one or a plurality of the same or different computers, consoles,web sites, databases and/or the like including pricing information forconstruction plan (or other) elements and/or parametric symbols. Suchprice schedule can optionally provide comparison pricing between two ormore different manufacturers, distributors and/or others for the sameconstruction (or other) element(s) or parametric symbols, for example,the pricing of a bay window for a kitchen having a variety of specifiedfeatures (white in color, vinyl frame, Low E glass, Argon filled glass,a specified number of grids, corresponding grid patterns, etc.) from1stWindows, Andersen Windows and Pella Corporation. The price schedulemay include one or a plurality of prices, which preferably are the sameprices that are procured using the systems and methods of the invention,but optionally may be different prices obtained from one or a pluralityof other web sites, databases, manufacturers, vendors, distributorsand/or the like.

A price schedule including one or a plurality of selected constructionplan (or other) elements or parametric symbols, which optionally butpreferably correspond to construction plan elements, or both, andcorresponding or other prices may optionally be inserted into theconstruction plan drawing. Additionally, or alternatively, a user mayplace an order for one or a plurality (or all) of selected constructionplan (or other) elements or parametric symbols, or both, automaticallyusing the systems and/or methods of the invention, including a use ofone or a plurality of local and/or remote computers or consoles, localand/or remote servers, databases and/or the like, or manually using someother method, as is known by those having ordinary skill in the art,such as otherwise using one or a plurality of computers or consoles, websites, telephones, facsimile machines, U.S. or foreign mail carriers ordeliverers, or in person at a facility of a manufacturer, distributor orother provider of construction plan (or other) elements, and/or thelike, or any combination thereof.

In one aspect, the present invention provides an automated method forcreating a price schedule for one or more construction plan elements ofa construction project comprising:

-   -   (a) providing on a local computer an architectural software        design tool and a construction plan drawing having at least one        construction plan element, wherein the construction plan drawing        is created with the architectural software design tool;    -   (b) providing on the local computer an add-on computer software        code that runs as an internal component within the architectural        software design tool, and that includes a palette containing one        or more parametric symbols, and optionally one or more        corresponding parametric symbol values, wherein the palette        includes a parametric symbol for each of the construction plan        elements;    -   (c) selecting one or more of the parametric symbols that is        included in the palette for insertion into the construction plan        drawing;    -   (d) optionally, selecting one or more parametric symbol values        for one or more of the selected parametric symbols;    -   (e) optionally, selecting one or more types of manufacturers or        distributors for one or more of the selected parametric symbols;    -   (f) inserting one or more of the selected parametric symbols        into the construction plan drawing;    -   (g) using the add-on computer software code and an Internet        connection, transmitting data corresponding to each of the        inserted parametric symbols from the local computer to a remote        server system;    -   (h) using a zip code, the add-on computer software code and an        Internet connection, accessing price data from a web site        present on the remote server system that includes price data for        a purchase of construction plan elements corresponding to        inserted parametric symbols from one or more available        manufacturers or distributors in a geographical location within        the zip code;    -   (i) determining from the price data a price for each of the        construction plan elements corresponding to an inserted        parametric symbol; and    -   (j) using the add-on computer software code, creating a price        schedule from the prices, wherein the price schedule includes a        total cost for all of the construction plan elements        corresponding to inserted parametric symbols, wherein the price        schedule can include one or more construction plan elements, and        wherein the price schedule may be immediately used on the local        computer to place an order to purchase one or more construction        plan elements that are present in the price schedule.

In another aspect, the present invention provides an automated systemfor creating a price schedule for one or more construction plan elementsof a construction project comprising:

-   -   (a) a local computer;    -   (b) an architectural software design tool, wherein the        architectural software design tool provides on the local        computer a construction plan drawing having at least one        construction plan element;    -   (c) a remote server system having a web site that maintains a        database including pricing data for the construction plan        elements, wherein an Internet connection exists between the        remote server system and the local computer; and    -   (d) an add-on computer software code that runs as an internal        component within the architectural software design tool on the        local computer;        wherein the add-on computer software code has a palette that        includes at least one parametric symbol that corresponds with        each of the construction plan elements, and that may be selected        by a user for insertion into the construction plan drawing; and        wherein the add-on computer software code:    -   (i) inserts at least one of the parametric symbols that are        selected by a user into the construction plan drawing;    -   (ii) transmits via the Internet connection data corresponding to        each inserted parametric symbol from the local computer to the        remote server system;    -   (iii) receives via the Internet connection a price for the        purchase of each of the construction plan elements corresponding        to an inserted parametric symbol from the remote server system,        wherein the price may be determined using a zip code and price        data that is present on the web site on the remote server        system, and corresponds with the purchase of the construction        plan elements in a geographical location within the zip code;        and    -   (iv) generates a price schedule from the prices, wherein the        price schedule includes a total cost for all of the construction        plan elements corresponding to inserted parametric symbols,        wherein the price schedule can include one or more construction        plan elements, and wherein the price schedule can be immediately        used on the local computer to place an order to purchase one or        more construction plan elements that are present in the price        schedule.

In still another aspect, the present invention provides an automatedsystem for creating one or a plurality of prices for one or a pluralityof construction plan elements of a construction project and optionallyone or a plurality of corresponding price schedules comprising:

-   -   (a) one or a plurality of local or remote computers or consoles,        or any combination thereof;    -   (b) one or a plurality of local or remote servers, or any        combination thereof;    -   (c) an architectural, civil or industrial software design tool,        wherein the software design tool provides on the computer,        console or server a construction plan drawing having one or a        plurality of construction plan elements;    -   (d) a local server system or remote server system that maintains        one or a plurality of databases including pricing data or        information, or both, for the one or a plurality of construction        plan elements, wherein an Intranet connection exists between the        local server system and the computer or console or an Internet        connection exists between the remote server system and the        computer or console, or both; and    -   (e) an add-on computer software code that runs as an internal        component within the software design tool when executed on the        computer, console or server or outside of the software design        tool operating as a dynamic link library; executable (.exe),        ActiveX or COM object, or any combination thereof;        wherein the add-on computer software code optionally includes a        palette, or uses an existing palette, that contains one or a        plurality of parametric symbols that corresponds with one or a        plurality of the construction plan elements, and that optionally        may be selected by a user for insertion into the construction        plan drawing; and        wherein the add-on computer software code, when executed by the        computer, console, server or dynamic link library, executable        (.exe), ActiveX or COM object:    -   (i) optionally inserts one or a plurality of the construction        plan elements, or parametric symbols that may optionally be        selected by a user, into the construction plan drawing;    -   (ii) transmits via the Intranet connection, the Internet        connection, or both, data, information or both corresponding to        one or a plurality of the construction plan elements or        parametric symbols from the computer, console, server or dynamic        link library, executable (.exe), ActiveX or COM object to the        local server system, the remote server system, or both, either        directly or via an optional communication module;    -   (iii) receives via the Intranet connection, the Internet        connection, or both, from the local server system, the remote        server system, or both, for one or a plurality of the        construction plan elements or parametric symbols, or both, one        or a plurality of prices for a purchase of one or a plurality of        construction plan elements or parametric symbols, or both,        wherein the prices may be determined using price data,        information or both that is present on, or accessed by, the        local server system, the remote server system, or both, and,        optionally, using a zip code, a geographical location, or a        combination thereof, and correspond with the purchase of the one        or a plurality of construction plan elements or parametric        symbols, or both, and, optionally, when a zip code, geographical        location, or a combination thereof, is employed, within an area        or region within the zip code or geographical location, either        directly or via an optional communication module; and    -   (iv) optionally generates a price schedule from the prices,        wherein the price schedule includes individual or combined costs        for the one or plurality of construction plan elements or        parametric symbols, or both, a total cost for all of the        construction plan elements or parametric symbols, or any        combination thereof, wherein the price schedule optionally can        include one or a plurality of construction plan elements or        parametric symbols, or both, and wherein the price schedule        optionally can be used immediately or at a subsequent time or        date, or both, on the computer, console, server, dynamic link        library, executable (.exe), ActiveX or COM object to place an        order to purchase one or a plurality of construction plan        elements or parametric symbols that are present in the price        schedule.

In yet another aspect, the present invention provides an automatedmethod for creating one or a plurality of prices for one or a pluralityof construction plan elements of a construction project and optionallyone or a plurality of corresponding price schedules comprising:

-   -   (a) providing on one or a plurality of local or remote        computers, consoles or servers, or any combination thereof, an        architectural, civil or industrial software design tool and a        construction plan drawing having one or a plurality of        construction plan elements, wherein the construction plan        drawing is created with the software design tool;    -   (b) providing on the local computer, console or server, or on a        dynamic link library, executable (.exe), ActiveX or COM object:        -   (i) an add-on computer software code that runs as an            internal component within the software design tool when            executed on the computer, console or server, or outside of            the software design tool when executed by the dynamic link            library, executable (.exe), ActiveX or COM object: and        -   (ii) optionally, a palette containing one or a plurality of            parametric symbols that correspond with one or more of the            construction plan elements, and optionally one or a            plurality of corresponding parametric symbol values;    -   (c) optionally, selecting one or a plurality of the construction        plan elements, or parametric symbols included in the optional        palette, or both, for insertion into the construction plan        drawing;    -   (d) optionally, selecting one or a plurality of construction        plan elements or parametric symbol values, or both, for one or a        plurality of the selected parametric symbols;    -   (e) optionally, selecting one or a plurality of types of        manufacturers, distributors or other construction plan element        providers for one or a plurality of the selected construction        plan elements or parametric symbols, or both;    -   (f) optionally, inserting one or a plurality of the selected        construction plan elements or parametric symbols, or both, into        the construction plan drawing;    -   (g) using the add-on computer software code and an Intranet        connection, an Internet connection, or both, transmitting data,        information, or both, corresponding to one or a plurality of the        construction plan elements or parametric symbols, or both, from        the computer, console, server or dynamic link library,        executable (.exe), ActiveX or COM object to a local server        system, a remote server system, or both, either directly or via        an optional communication module;    -   (h) using the add-on computer software code and an Intranet        connection, an Internet connection, or both, and, optionally, a        zip code, a geographical location, or a combination thereof,        accessing price data or information, or both, from the local        server system, the remote server system, or both, that includes        price data or information, or both, for a purchase of the one or        plurality of construction plan elements or parametric symbols,        or both, optionally from one or a plurality of available        manufacturers, distributors or other construction plan element        providers, or any combination thereof, optionally within the zip        code or geographical location, or a combination thereof;    -   (i) determining from the price data or information, or both, one        or a plurality of prices for the one or plurality of        construction plan elements or parametric symbols, or both; and    -   (j) optionally, using the add-on computer software code,        generating a price schedule from the prices, wherein the price        schedule includes individual or combined costs for the one or        plurality of construction plan elements or inserted parametric        symbols, or both, a total cost for all of the construction plan        elements or inserted parametric symbols, or both, or any        combination thereof, wherein the price schedule can optionally        include one or a plurality of construction plan elements or        inserted parametric symbols, or both, and wherein the price        schedule can optionally be used immediately or at a subsequent        time or date, or both, on the computer, console, server or        dynamic link library, executable (.exe), ActiveX or COM object        to place an order to purchase one or a plurality of construction        plan elements or inserted parametric symbols, or both, that are        present in the price schedule.

In another aspect, the present invention provides an automated systemfor creating one or a plurality of prices for one or a plurality ofconstruction plan elements of a construction project and optionally oneor a plurality of corresponding price schedules comprising:

-   -   (a) a local computer;    -   (b) an architectural software design tool, wherein the        architectural software design tool provides on the local        computer a construction plan drawing having at least one        construction plan element;    -   (c) one or more databases including pricing data for the        construction plan elements;    -   (d) an add-on computer software code that runs as an internal        component within the architectural software design tool on the        local computer;        wherein the add-on computer software code has a palette that        includes at least one parametric symbol that corresponds with a        construction plan element, and that may be selected by a user        for insertion into the construction plan drawing; and        wherein the add-on computer software code when executed by the        local computer:    -   (i) inserts at least one of the parametric symbols that are        selected by a user into the construction plan drawing;    -   (ii) transmits data corresponding to inserted parametric symbols        from the local computer to the database;    -   (iii) receives from the database a price for the purchase of one        or more construction plan elements corresponding to inserted        parametric symbols, wherein the price may be determined using        price data that is present in the database; and    -   (iv) optionally, generates a price schedule from the prices,        wherein the price schedule may optionally include a total cost        for all of the construction plan elements corresponding to        inserted parametric symbols, wherein the price schedule may        optionally include one or more construction plan elements, and        wherein the price schedule may optionally be immediately used on        the local computer to place an order to purchase one or more        construction plan elements that are present in the price        schedule.

In yet another aspect, the present invention provides an automatedmethod for creating one or a plurality of prices for one or a pluralityof construction plan elements of a construction project and optionallyone or a plurality of corresponding price schedules comprising:

-   -   (a) providing on a local computer an architectural software        design tool and a construction plan drawing having at least one        construction plan element, wherein the construction plan drawing        is created with the architectural software design tool;    -   (b) providing on the local computer an add-on computer software        code that runs as an internal component within the architectural        software design tool, and that includes a palette containing one        or more parametric symbols, and optionally one or more        corresponding parametric symbol values, wherein the palette        includes at least one parametric symbol that corresponds with a        construction plan element;    -   (c) selecting one or more of the parametric symbols that is        included in the palette for insertion into the construction plan        drawing;    -   (d) optionally, selecting one or more parametric symbol values        for one or more of the selected parametric symbols;    -   (e) optionally, selecting one or more types of manufacturers or        distributors for one or more of the selected parametric symbols;    -   (f) inserting one or more of the selected parametric symbols        into the construction plan drawing;    -   (g) using the add-on computer software code, transmitting data        corresponding to the inserted parametric symbols from the local        computer to a database including price data for a purchase of        one or more construction plan elements corresponding to inserted        parametric symbols;    -   (h) using the add-on computer software code, accessing price        data from the database;    -   (i) determining from the price data a price for one or more        construction plan elements corresponding to inserted parametric        symbols; and    -   (j) optionally, using the add-on computer software code,        creating a price schedule from the prices, wherein the price        schedule may optionally include a total cost for all of the        construction plan elements corresponding to inserted parametric        symbols, wherein the price schedule may optionally include one        or more construction plan elements, and wherein the price        schedule may optionally be immediately used on the local        computer to place an order to purchase one or more construction        plan elements that are present in the price schedule.

The methods and systems of the present invention are “revolutionary,”and architects “love them.” For example, the November 2006 issue ofCadalyst, an independent (non-biased) magazine containing numerousarticles about CAD, includes an article (page 50, right column) thatstates, in part:

-   -   “1ST Pricing is the only product available that allows automatic        product pricing and purchasing directly within AutoCAD, ArchiCAD        and TurboCAD (FIG. 2). Its developer expects to soon introduce        an Architectural desktop and Revit plug-in as well as        Vectorworks integration. This patent-pending product        automatically gives you five real-time quotes on doors and        windows delivered to the job site based on zip code. Look        forward to the ability to get realtime pricing updates for all        components such as lumber packages.” [Emphasis added.]

As will be realized, the present invention is capable of a wide varietyof other and different embodiments, and its several details are capableof numerous modifications in various respects, all without departingfrom the scope and spirit of the invention. Accordingly, the descriptionand accompanying figures are to be regarded as illustrative and notrestrictive.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a depiction of an activation button that is present in asoftware toolbar of a plug-in (add-on) computer software code inaccordance with the present invention

FIG. 2 is a flow chart that illustrates a basic data interaction betweenthe plug-in (add-on) computer software code and a 1stPricing or1stWindows (or other) online database in accordance with the presentinvention.

FIG. 3 illustrates a Parametric Symbol Palette that may be present inthe plug-in (add-on) computer software code that is used with thepresent invention.

FIG. 4 shows parametric symbol details of the Parametric Symbol Paletteillustrated in FIG. 3.

FIG. 5 shows the toolbar of the Parametric Symbol Palette that isillustrated in FIG. 3.

FIG. 6 shows a User ID dialog that appears in the plug-in (add-on)computer software code when a first parametric symbol is inserted into aset of construction plans (by clicking on the parametric symbol in theParametric Symbol Palette).

FIG. 7 illustrates an operation for inserting parametric symbols into aset of construction plans in accordance with the plug-in (add-on)computer software code of the present invention.

FIGS. 8 and 9, respectively, show two and three dimensionalrepresentations of the parametric symbols that may be employed inaccordance with the plug-in (add-on) computer software code of thepresent invention.

FIG. 10 shows a portion of a dialog for specifying general propertiesfor one or more parametric symbols (location, remarks, distance off offloor, and/or the like) in accordance with the plug-in (add-on) computersoftware code of the present invention.

FIGS. 11, 12 and 13 show portions of respective dialogs in accordancewith the plug-in (add-on) computer software code of the presentinvention for windows, acrylic glass blocks and doors, respectively,that specify attributes of particular parametric symbol types, such asthe width, height, handling, frame type, color and composition of awindow.

FIG. 14 depicts “Scheduler Controls” that may be used with a ParametricSymbol Palette of the plug-in (add-on) computer software code of thepresent invention.

FIG. 15 depicts a “Registration” dialog that may be opened in accordancewith the plug-in (add-on) computer software code of the presentinvention when a user clicks the “Registration” scheduler controlbutton.

FIG. 16 depicts a “Zip Code” dialog opened upon actuation of a “ZipCode” scheduler control button in accordance with the plug-in (add-on)computer software code of the present invention.

FIG. 17 depicts a “User ID” dialog opened upon actuation of the “ZipCode” scheduler control button in accordance with the plug-in (add-on)computer software code of the present invention.

FIG. 18 shows a registration page for registering a new user inaccordance with the plug-in (add-on) computer software code of thepresent invention.

FIG. 19 shows “Scheduler Creation” controls in accordance with theplug-in (add-on) computer software code of the present invention thatmay be used with a Parametric Symbol Palette of the present invention,which enable the creation, updating and/or viewing of a parametricsymbol and/or price schedule, and which allow the plug-in (add-on)computer software code of the present invention to connect to the1stPricing or 1stWindows (or other) online or offline database inaccordance with the present invention to obtain pricing information forvarious construction plan (or other) elements.

FIG. 20 shows a parametric symbol schedule dialog in accordance with theplug-in (add-on) computer software code of the present invention, whichmay be used to generate a parametric symbol schedule based upon theparametric symbols that have been inserted into a set of constructionplans in accordance with the present invention.

FIG. 21 shows details of the parametric symbol schedule of FIG. 20.

FIG. 22 shows in an architectural CAD “Wall Tools” feature, parametricsymbols that are embedded into walls of a structure in accordance withembodiments within the present invention.

FIG. 23 shows a login screen in accordance with the plug-in (add-on)computer software code of the present invention in which a ReferenceNumber may be inserted, which insertion has the effect of automaticallylogging a user onto the 1 stPricing or 1stWindows (or other) onlinedatabase, which provides pricing information for selected parametricsymbols (construction elements).

FIG. 24 shows a dialog in the 1 stPricing or 1stWindows (or other)online database for allowing a user to indicate a type of manufactureror distributor (or other person, entity or object that can provide oneor a plurality of prices for one or a plurality of construction plan (orother) elements and/or parametric symbols) in accordance with thepresent invention.

FIG. 25 shows an exemplary price quote that is generated by the1stPricing or 1stWindows (or other) online or offline database inaccordance with the present invention.

FIG. 26 shows a highlighted portion of the exemplary price quote of FIG.25, and options that are available for each price quote (view quote,alter quote, view all quotes, create new quotes, compare prices, preparea quote and the like).

FIG. 27 shows a comparison pricing dialog in the 1stPricing or1stWindows (or other) online or offline database of the presentinvention that appears when the user clicks on “Compare Prices” in theprice quote shown in FIG. 26, and that permits the user to select aparticular quote for which comparison pricing for a parametric symbol(construction element) between available manufacturers or distributors(or others) within, or outside of, a selected zip code will begenerated.

FIG. 28 shows a comparison price quote generated by the 1stPricing or1stWindows (or other) online or offline database in accordance with thepresent invention when the user clicks on “Compare Prices” in thecomparison pricing dialog that is shown in FIG. 26, with five differentprices being shown for five different patio door manufacturers inconnection with a vinyl sliding patio door having specified features anda specified size.

FIGS. 29-33 show various dialogs that may be present in the 1stPricingor 1stWindows online or offline (or other) database in connection withthe check out process in accordance with the present invention after aprice quote has been completed, and a user clicks a “Check Out” button.

FIG. 34 shows an export function of a generated price schedule in the1stPricing or 1stWindows online or offline (or other) database thatpermits the price schedule to be exported as a standalone object into adatabase in the form of various common computer applications or formatsincluding, but not limited to, Excel, Word, Plain Text, HTML, XML, PDFand/or the like.

FIG. 35 is a flow chart that illustrates the basic data interactionbetween the plug-in (add-on) computer software code and one or aplurality of 1stPricing or 1stWindows (or other) online or offline (orother) databases in embodiments within the present invention. Incontrast with the flow chart that is shown in FIG. 2, the flow chartshown in FIG. 35 additionally includes a pricing module. In FIG. 35, theplug-in computer software code operate inside of a plan drawer's (orother user's) computer or console. The computer/console requests pricingdata and/or information from the plug-in computer software code, whichrequests the pricing data and/or information from one or a plurality ofonline and/or offline databases. The database(s) sends the pricing dataand/or information back to the plug-in computer software code, whichsends the pricing data and/or information back to the plan drawerscomputer/console.

FIG. 36 shows a flow chart that is similar to the flow chart shown inFIG. 35, with the exception that it additionally includes acommunication module, which results in an enhanced communication path.In FIG. 36, the plug-in computer software code and the communicationmodule operate inside of a plan drawer's (or other user's)computer/console. The plan drawer's (or other user's) computer/consolerequests pricing data and/or information from the plug-in computersoftware code, which requests the pricing data and/or information fromthe communication module, which requests the pricing data and/orinformation from one or a plurality of online or offline databases. Thedatabase(s) send the pricing data and/or information back to thecommunication module, which sends the pricing data and/or informationback to the plug-in computer software code, which sends the pricing dataand/or information to the plan drawer's computer or console.

FIG. 37 is a flow chart that is similar to the flow chart shown in FIG.35, with the exception that. in FIG. 37, the plug-in (add-on) computersoftware code that operates inside of a plan drawer's (or other user's)computer or console is connected across the Internet to a remoter serverthat can access one or a plurality of local and/or remote databases, andthe pricing data and/or information is procured using a remote serversystem that accesses the database(s). The database(s) can be connecteddirectly to the remote server or the remote server can access additionalremote servers which provide the pricing data and/or information. InFIG. 37, the plug-in computer software code operates in the plandrawer's computer connected across the Internet to a remoter server withone or more databases local or remote.

FIG. 38 shows the same flow chart as FIG. 37, with the exception that itadditionally includes a communication module that operates in a user'scomputer or console. In FIG. 38, the plan drawer's (or other user's)computer/console requests data and/or information from the plug-incomputer software code and the plug-in computer software code requeststhe data and/or information from the communication module. Thecommunication module requests the data and/or information from theremote server, the remote server sends the data and/or information tothe communication module, the communication module sends the data and/orinformation to the plug-in computer software code, and the plug-incomputer software code sends the data and/or information to the plandrawer's computer/console. In FIG. 38, the plug-in computer softwarecode operates in a plan drawer's (or other user's) computer/console, andthe pricing data and/or information is procured using a remote serversystem that accesses one or a plurality of separate local and/or remotedatabases, which can be connected directly to the remote server, or theremote server can access additional remote servers which provide thepricing data and/or information.

FIG. 39 shows a flow chart that is similar to the flow chart shown inFIG. 35, with the exceptions that: (i) the database(s), which includepricing data and/or other data and/or information, is present on aphysical storage medium (CD, DVD, thumb drive, tape drive and/or thelike); (ii) the system includes a remote data update server that updatesthe pricing and/or other database(s) across the Internet with morecurrent pricing and/or other data and/or information (in comparison withpreviously-existing data and/or information), which may be used by theplug-in computer software code periodically (at any desired or requiredtime interval, such as daily, bi-weekly, weekly, bi-monthly, monthly,bi-annually, annually and/or the like) or upon demand of a user (i.e.,at any time and/or date); and (iii) the system includes a computersoftware update database installer program to install database updatesor database update systems from, for example, a physical storage medium(CD, DVD, thumb drive, tape drive and/or the like). In FIG. 39, theplug-in computer software code operates in the plan drawer's (or otheruser's) computer, which requests data and/or information from theplug-in computer software code, which in turn requests the data and/orinformation from the database(s) present on the physical storage medium.The physical storage medium sends the data and/or information back tothe plug-in computer software code, and the plug-in computer softwarecode transmits the data and/or information to the plan drawer'scomputer.

FIG. 40 shows a flow chart that is similar to the flow chart shown inFIG. 39, with the exceptions that: (i) the system illustrated includes aplurality of plan drawer (or other user) computers: (ii) the pluralityof plan drawer computers each include a console; (iii) no 1st Pricingplug-in computer software code is present separately; (iv) a localserver is present; and (v) the system is present in a local area network(LAN). In FIG. 40, the plan drawer's (or other user's) computer/consolerequests updated pricing and/or other data and/or information from thelocal server, the local server requests the updated data and/orinformation from the remote data update server, the remote data updateserver sends the updated data and/or information to the local server,the local server stores the updated data and/or information to one ormore physical storage media, one or more of the plan drawer'scomputers/consoles and/or the local server. In an alternative method,one or more of the plan drawer's computers/consoles request updated dataand/or information from the remote server, the remote server moves theupdated data and/or information from the updated physical storagemedium, and the local server stores the updated data and/or informationto the physical storage medium, one or more of the plan drawer'scomputers/consoles and/or the local server.

FIG. 41 shows a flow chart that is similar to the flow chart that isshown in FIG. 38, with the exceptions that: (i) the system illustratedincludes a plurality (two) of local plan drawer (or other user)computers: (ii) the plurality of plan drawer (or other user) computerseach include a console; (iii) the plug-in computer software codeoperates in a local server (rather than in a user's computer/console);(iv) the system is present, and operates, in a local area network (LAN);and (v) the system does not include a separate communication module. InFIG. 41, one or both of the plan drawer's (or other user's)computers/consoles request pricing and/or other data and/or informationfrom the plug-in computer software code operating in the local server,which requests the data and/or information from the remote server, whichrequests the data and/or information from one or a plurality of remotedatabases, which send the data and/or information back to the remoteserver, which sends the data and/or information back to the plug-incomputer software code operating in the local server, which provides thedata and/or information to one or a plurality of the plan drawer'scomputers/consoles.

FIG. 42 shows a flow chart that is similar to the flow chart shown inFIG. 41, with the exceptions that: (i) the system illustratedadditionally includes a communication module that operates in the localserver; and (ii) three, rather than two, local plan drawercomputers/consoles are shown. This system is also present in a localarea network (LAN), and the pricing data and/or information is procuredusing a remote server system that accesses one or a plurality ofseparate local and/or remote databases, which can be connected directlyto the remote server, or the remote server can access additional remoteservers which provide the pricing data and/or information. In FIG. 42,one or a plurality of the plan drawer's (or other user's)computers/consoles request pricing and/or other data and/or informationfrom the plug-in computer software code (operating in a local server),the plug-in computer software code requests the data and/or informationfrom the communication module, the communication module requests thedata and/or information from the remote server, and the remote serverprocures the data and/or information from one or more local and/orremote databases. The database(s) then sends the data and/or informationback to the communication module, which sends it to the plug-in computersoftware code (operating in the local server), which provides it to oneor a plurality of the plan drawer's computers/consoles.

FIG. 43 shows the same flow chart as FIG. 40, with the exception thatthe system additionally includes a communication module (with thecommunication module software code operating in a local server). Thecommunication module may update the databases across the Internet withmore current pricing and/or other data and/or information; and/or fromone or a plurality of physical storage media (CD, DVD, thumb drive, tapedrive and/or the like). In FIG. 43, one or a plurality of the plandrawer's (or other user's) computers/consoles request updated pricingand/or other data and/or information from the communication module, thecommunication module requests the updated data and/or information fromthe remote data update server, the remote data update server sends theupdated (more current) data and/or information to the communicationmodule, and the communication module stores the updated data and/orinformation to the physical storage medium, one or a plurality of theplan drawer's computers/consoles and/or the local server. In analternative method, one or a plurality of the plan drawer'scomputers/consoles request updated data and/or information from thecommunication module, the communication module moves the updated dataand/or information from the updated physical storage medium, and thecommunication module stores the updated data and/or information to thephysical storage medium, the plan drawers computer/console and/or theserver.

FIG. 44 shows a flow chart that is similar to the flow chart shown inFIG. 43, with the exceptions that: (i) no data update server (orcorresponding data update installer computer program present on aphysical storage medium) is present; (ii) updated pricing and/or otherdata and/or information is not stored on physical storage media; and(iii) a remote server is present (which may or may not access one or aplurality of separate local and/or remote databases). This system alsois present, and operates, in a LAN. In FIG. 44. one or a plurality ofthe plan drawer's (or other user's) computers/consoles request pricingand/or other data and/or information from the plug-in computer softwarecode (operating in a local server), the plug-in computer software coderequests the data and/or information from the communication module (alsooperating in a local server), and the communication module requests thedata and/or information from the remote server. The remote server sendsthe data and/or information back to the communication module, thecommunication module sends the data and/or information back to theplug-in computer software code, and the plug-in computer software codeprovides the data and/or information to one or a plurality of the plandrawer's computers/consoles.

FIG. 45 shows the same flow chart as FIG. 44, with the exception that itdoes not include a communication module. One or a plurality of the plandrawer's computers/consoles requests pricing and/or other data and/orinformation from the plug-in computer software code (operating in alocal server), and the plug-in computer software code requests thepricing and/or other data and/or information from the remote server,which accesses one or a plurality of local and/or remote databasesincluding pricing and/or other information. The remote server sends thepricing data and/or information procured from the database(s) to theplug-in computer software code, and the plug-in computer software codesends the data and/or information to one or a plurality of the plandrawer's computers/consoles. This system also is present, and operates,in a LAN.

FIG. 46 shows the same flow chart as FIG. 40, with the exceptions that:(i) a remote third plan drawer's (or other user's) computer is shown;and (ii) the system is present in a wide area network (WAN), rather thanin a LAN. In FIG. 46, the remote third plan drawer's computer/console(as well as optionally the first and/or second local plan drawer'scomputers/consoles) requests updated pricing and/or other data and/orinformation from the local server across the WAN. The local serverrequests the updated data and/or information from the remote data updateserver, the remote data update server sends the updated data and/orinformation across the WAN to the local server, and the local serverstores the updated data and/or information to one or a plurality ofphysical storage media, the local server and/or across the WAN on one ora plurality of the plan drawer's computers/consoles.

FIG. 47 shows a flow chart that is similar to the flow chart shown inFIG. 42, with the exceptions that: (i) the system is present in a widearea network (WAN), rather than in a LAN; (ii) the third plan drawer'scomputer is remote, rather than local; and (iii) no communication moduleis present. The remote third plan drawer's computer/console (andoptionally the first and/or second local plan drawer'scomputers/consoles) requests pricing and/or other data and/orinformation from the plug-in computer software code (operating in alocal server) across the WAN, the plug-in computer software coderequests the data and/or information from the remote server, and theremote server procures the data and/or information from one or aplurality of pricing and/or other databases. The remote server sends thedata and/or information across the WAN to the plug-in computer softwarecode (operating in the local server) and/or one or a plurality of theplan drawer's computers/consoles.

FIG. 48 shows a flow chart that is similar to the flow chart shown inFIG. 47, with the exception that it additionally includes acommunication module that operates in the local server. The third remoteplan drawer's (or other user's) computer/console (and optionally theplan drawer's first and/or second local computers/consoles) requestspricing and/or other data and/or information from the plug-in computersoftware code (operating in a local server) across the WAN, the plug-incomputer software code requests the data and/or information from thecommunication module, and the communication module requests the dataand/or information from the remote server, which procures it from one ora plurality of local and/or remote databases. The remote server sendsthe data and/or information to the communication module, thecommunication module sends the data and/or information to the plug-incomputer software code, and the plug-in computer software code sends thedata and/or information to the third remote plan drawerscomputer/console across the WAN (and optionally to one or both of thelocal computers/consoles).

FIG. 49 shows the same flow chart as FIG. 46, with the exception that itadditionally includes a communication module. The remote third plandrawer's (or other user's) computer/console (and optionally the plandrawer's first and/or second local computers/consoles) requests updatedpricing and/or other data and/or information from the plug-in computersoftware code (operating in a local server) across the WAN, the plug-incomputer software code requests the updated data and/or information fromthe communications module, and the communication module requests theupdated data and/or information from the remote data update server. Theremote data update server sends the updated data and/or information tothe communications module, the communication module sends the updateddata and/or information to the plug-in computer software code, and theplug-in computer software code stores the updated data and/orinformation to one or a plurality of physical storage media, the localserver and/or on one or a plurality of the three plan drawer'scomputers/consoles across the WAN.

FIG. 50 shows the same flow chart as FIG. 44 with the exceptions that:(i) the system includes three, rather than two, plan drawer (or otheruser) computers, with one being remote and two being local; and (ii) thesystem is present in a wide area network (WAN), rather than in a LAN.The plan drawer's remote third computer/console (and optionally thelocal first and/or second computers/consoles) requests pricing and/orother data and/or information from the plug-in computer software code(operating in a local server) across the WAN, the plug-in computersoftware code requests the data and/or information from thecommunication module, the communication module requests the data and/orinformation from the remote server, which procures the data and/orinformation from one or a plurality of local and/or remote databases.The remote server sends the data and/or information to the communicationmodule, the communication module sends the data and/or information backto the plug-in computer software code, and the plug-in computer softwarecode sends the data and/or information to the third remote plan drawerscomputer/console (and optionally to the first and/or second localcomputers/consoles) across the WAN.

FIG. 51 shows the same flow chart as FIG. 50, with the exception that itdoes not include a communication module. The third remote plan drawer's(or other user's) computer/console (and optionally the local firstand/or second computers/consoles) request pricing and/or other dataand/or information from the plug-in computer software code (operating ina local server) across the WAN, and the plug-in computer software coderequests the data and/or information from the remote server. The remoteserver sends the data and/or information to the plug-in computersoftware code, and the plug-in computer software code sends the dataand/or information to the remote third plan drawer's computer/console(and optionally to the local first and/or second computers/consoles)across the WAN.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

The present invention may be understood more readily by reference to thefollowing detailed description of the preferred embodiments.

Definitions

For purposes of clarity, various terms and phrases used throughout thisspecification and the appended claims are defined in the manner setforth below. If a term or phrase used in this specification, or in theappended claims, is not defined below, or otherwise in thisspecification, the term or phrase should be given its ordinary meaning.

The term “about” as is used herein means approximately, as is known, andmay be determined, by those having ordinary skill in the art.

The term “ActiveX” as is used herein means a framework for definingreusable software components in a programming language independent way.Software applications can then be composed from one or more of thesecomponents in order to provide their functionality in a manner known bythose having ordinary skill in the art.

The phrase “adaptor” as is used herein means a hardware device, such asa printed circuit board, that enables a computer to use one or moreadditional peripheral devices and/or pieces of hardware.

The phrase “application” as is used herein means software other than theoperating system, such as Word processors, database managers, Webbrowsers and/or the like. Each application generally has its own userinterface that allows a user to interact with a particular program. Theuser interface for most operating systems and applications is agraphical user interface (GUI), which uses graphical screen elements,such as windows (which are used to separate the screen into distinctwork areas), icons (which are small images that represent computerresources, such as files), pull-down menus (which give a user a list ofoptions), scroll bars (which allow a user to move up and down a window)and buttons (which can be “pushed” with a click of a mouse). A widevariety of applications is known by those having ordinary skill in theart.

The phrases “Application Program Interface” and API as are used hereinmean a set of commands, functions and/or protocols that computerprogrammers can use when building software for a specific operatingsystem. The API allows programmers to use predefined functions tointeract with an operating system, instead of writing them from scratch.All computer operating systems, such as Windows, Unix, and the Mac OS,usually provide an application program interface for programmers. APIsare also used by hardware devices that can run software programs. Whilethe API makes the programmer's job easier, it also benefits the enduser, since it generally ensures that all programs using the same APIwill have a similar user interface.

The phrases “architectural CAD software,” “architectural Computer AidedDesign software” and “architectural software design tool” as are usedherein refer to specialized computer software (computer readableinstructions and/or data, typically in the form of a code) that enableengineers, architects and/or others to design structures, such as rooms,houses, commercial buildings, construction elements (doors, windows,walls, floors, ceilings and the like), furniture and the like, on acomputer, for example, TurboCAD V8 software (version 9), AutoCAD®software (versions 2002, 2004 and 2005), AutoCAD Architectural Desktop™2002 and 2004 and Autodesk Map® 5, 6 and 3D. Often, in addition to thisspecialized software, architectural CAD systems use a graphics monitor,a light pen or digitizing tablet for drawing, and a special printer orplotter for printing design specifications. Architectural CAD software,and other architectural Computer Aided Design software, is commerciallyavailable from sources that are known by those having ordinary skill inthe art, for example, from CAD companies directly, or from CAD softwaredealers, such as Design Integrations Inc. (Marietta, Ga.).

The phrases “Bill of Materials” and “BOM” as are used herein mean a listof one or a plurality of raw or other materials, sub-assemblies,intermediate assemblies, sub-components, components, parts and/or thelike, and/or the quantities of the same, that are required or desired tomanufacture or otherwise produce one or a plurality of end items (finalproducts). It may include one or a plurality of price statements,indications and/or items of data and/or information, and is a type of aprice schedule.

The phrases “boot loader” or “boot manager” as are used herein mean arelatively small program that places the operating system of a computerinto memory. When a computer is powered-up or restarted, the basicinput/output system (BIOS) typically performs some initial tests, andthen transfers control to the Master Boot Record (MBR), where the bootloader typically resides. Most new computers are shipped with bootloaders for some version of Microsoft Windows or the Mac OS. If acomputer is to be used with Linux, a special boot loader must typicallybe installed. For Linux, the two most common boot loaders are known asLILO (Linux Loader) and LOADLIN (LOAD LINux). An alternative bootloader, called GRUB (GRand Unified Bootloader), is used with Red HatLinux. LILO is typically the most popular boot loader among computerusers that employ Linux as the main, or only, operating system. Theprimary advantage of LILO is the fact that it allows for fast boot-up.LOADLIN is preferred by some users whose computers have multipleoperating systems, and who spend relatively little time in Linux.LOADLIN is sometimes used as a backup boot loader for Linux in case LILOfails. GRUB is preferred by many users of Red Hat Linux because it isthe default boot loader for that distribution.

The phrase “breather tube” as used herein means a small metal tube thatis placed into an insulated unit's spacer to equalize pressuredifferences. Breather tubes can allow moisture to enter into theinsulating unit, and are mostly used in high altitude locations.

The phrases “building products” and “construction elements” as are usedherein include, but are not limited to, windows, doors, acrylic glass orother blocks, fireplaces, sky lights, cabinets, fireplaces, Forced AirUnits, drywall, lumber, insulation, molding, laminates, plumbingfixtures, electrical fixtures and the like.

The term “byte” as is used herein refers to a unit of memory in a memorylocation or device of a computer. The storage capacity of a memorylocation or device, such as a main or secondary memory (hard disks,floppy disks, CD-ROMs, and the like) of a computer, is the total numberof bytes that it can hold. Some computers can store thousands ormillions of bytes. A large main memory permits large programs, or manyprograms, to run. On many personal computers, the hard drive can usuallystore between 40 GB and 120 GB. The table below shows the relationbetween bytes, number of bytes and symbols used to represent them.

Unit Symbol Number of Bytes Byte None 2⁰ = 1 Kilobyte KB 2¹⁰ = 1024Megabyte MB 2²⁰ = 1,048,576 Gigabyte GB 2³⁰ = 1,073,741,824 Terabyte TB2⁴⁰ = 1,099,511,627,776

The phrase “CalStar” as is used herein means an Energy Efficient Programthat promotes green and sustainable building practices at the State ofCalifornia level. Credits are given by the State of California to usersof properly certified building products.

The phrases “campus area network” and “CAN” as are used herein mean acomputer network that typically interconnects local area networksthroughout a limited geographical area, such as a university campus, acorporate campus or a military base. It may be considered as ametropolitan area network (MAN) that is specific to a campus setting. Acampus area network is, therefore, typically larger than a local areanetwork (LAN) but smaller than a wide area network (WAN). Althoughgenerally not considered to be a wide area network (WAN), a CANtypically extends the reach of each local area network (LAN) within thecampus area of an organization. In a CAN, the buildings of a universityor corporate campus typically are interconnected using the same types ofhardware and networking technologies that one would use in a LAN. Inaddition, all of the components, including switches, routers, andcabling, as well as wireless connection points, typically are owned andmaintained by the organization.

The terms “CAD” and “Computer-Aided Design” as are used herein mean theuse of a computer software tool for a design of three-dimensional andother objects, or parts, real or virtual. CAD often involves more thanjust shapes, and CAD may be used to define assembly and dimensionalmanufacturing processes, both manual and automated. The output of CADoften must convey also symbolic information such as materials,processes, dimensions and tolerances according to application-specificconventions. CAD may be used to design curves and figures intwo-dimensional (2D) space or curves, surfaces, or solids inthree-dimensional (3D) objects. Additional information about CAD ispresent in G. Farin, A History of Curves and Surfaces in CAGD, Handbookof Computer Aided Geometric Design (North Holland, ISBN 0 444 51104-0).CAD software is commercially available from sources that are known bythose having ordinary skill in the art.

The phrase “central processing unit” as is used herein means a computerhardware component that executes individual commands of a computersoftware program. It reads program instructions from a main or secondarymemory, and then executes the instructions one at a time until theprogram ends. During execution, the program may display information toan output device such as a monitor.

The term “civil” as is used herein means a discipline that works with adesign, construction, maintenance and/or the like of a physical and/ornaturally built environment, including works such as roads, bridges,canals, dams, buildings and/or the like.

The terms “COM” and “Component Object Model” as are used herein mean abinary-interface standard for software componentry introduced byMicrosoft Corporation (Redmond, Wash.) in or around 1993. It is used toenable inter-process communication and dynamic object creation in alarge range of programming languages.

The term “compiler” as is used herein means one or more computer program(alone or in a set) that transform human readable source code of anothercomputer program into the machine readable code that a CPU can executeor source code written in a computer language into another computerlanguage (the machine code or target language, which often has a binaryform known as object code). The most common reason for wanting totransform source code is to create an executable program. For manycompilers, source code is translated directly into a particular machinelanguage. Java source code, for example, may be converted using a Javacompiler into Java byte code, and another compiler could be employed,for example, to convert the Java byte code into a particular machinelanguage for execution on a particular computer.

The phrase “communication module” as used herein means a system for anoptional use that is a part of the enhanced add-on (plug-in) computersoftware code that is described herein, and that may be employed toconnect a plan drawer's (or other user's) computer and/or console to anInternet or other service provider, or otherwise, for the purpose ofpermitting communication between the two (or between more than twosystems). This module is a translation module. It takes the data fromthe plan drawer's (or other user's) computer and/or console and formatsit into a standard format for the 1stPricing server and/or 1stWindowsserver (or other server). The module sends the formatted information tothe server, subsequently receives back from the server formatted data,and then makes the formatted data available to the CAD (or othersoftware design) program. CAD programs generally have copyrighted customprogramming that is unique. The inventors have created, developed andstandardized a way to get or otherwise procure pricing data and/orinformation from the pricing server, so that it is not necessary to havea separate server for each of the types of CAD program. In essence,there are CAD companies that speak all different languages. For example,CAD company 1 speaks language A, CAD company 2 speaks language B, andCAD company 3 speaks language C. If, for example, the 1stPricing serveronly speaks language Z, when CAD company 1 comes in speaking language A,it goes through the communication module and the communication moduletranslates the data and/or information from CAD language A to CADlanguage Z, and then sends it to the 1stPricing server. The serverinterprets the data and/or information and sends back the information tothe module with pricing data and/or other data (RFID tags, geospatialinformation, product specification information and/or the like). Themodule then translates the language from language Z back to language A,and then sends it to CAD company 1. From there, it is displayed to theCAD user. As used in the methods and systems of the present invention,the optional communication modules typically permit all CAD (and othersoftware design tool) companies to enter as an additional method forcommunicating with the server on the 1stPricing or other web site.Alternatively, the CAD companies may achieve the same result using themethod and system that are illustrated in FIG. 2. The communicationmodule works automatically. In one embodiment of the invention, all thata user has to do is hit the Create Schedule button or Update Schedulebutton described herein. From that point on, it works automatically.

The phrases “computer” and “programmable computer” as are used hereinmean a programmable, preferably multipurpose, electronic machine thataccepts data, such as raw data, facts and/or figures, and processes,transforms and/or manipulates the data into information that can beused. It is typically operated under the control of instructions thatare stored in its own memory unit, which can accept and store data (e.g.data entered using a keyboard), perform arithmetic and logicaloperations on that data without human intervention (e.g. process datainto information) and produce output from the processing (e.g. viewinformation on a screen). A computer may be a stand-alone unit or mayconsist of a plurality of interconnected units that are operablyconnected with each other.

The phrase “computer programmer” as is used herein means a person orentity that designs, writes, develops and/or tests computer programs, orthe like.

The phrase “computer programming” as is used herein means a process ofwriting, testing, debugging/troubleshooting and/or maintaining sourcecode of computer programs. This source code is written in a programminglanguage, and the code may be a modification of an existing source orsomething completely new. The purpose of programming is to create aprogram that exhibits a certain desired behavior (customization). Theprocess of writing source code may require, depending upon thecircumstances, knowledge of the application domain, specializedalgorithms and/or formal logic.

The phrase “computer software” as is used herein refers to computerprograms and/or a series of instructions that may be installed on acomputer, and that the computer's hardware executes, generally one afteranother. It generally consists of lines of code written by computerprogrammers that have been compiled into a computer program. Softwareprograms are generally stored as binary data (a 2-digit numerical systemused by computers to store data and compute functions that consists ofones and zeros) that is copied to a computer's hard drive when it isinstalled. Since software is virtual and does not take up any physicalspace, it is generally easier, and often less expensive, to upgrade thancomputer hardware. Computer software is often continuously upgraded andimproved. CD-ROMs, DVDs and other types of media, which are known bythose having ordinary skill in the art, can be used to distributesoftware. When one purchases or otherwise procures a software program,it usually comes on a disc, which is a physical means for storing thesoftware. Many software programs require that one first install them ona computer before using them. For example, if one purchases MicrosoftOffice, it needs to be installed on a computer before one can run any ofthe included programs, such as Word or Excel. The software can beinstalled from a CD or DVD, an external hard drive, or from a networkedcomputer, or the like. A software program or software update can alsooften be installed using a file that is downloaded from the Internet.Installing a software program generally writes the necessary data forrunning a program on a computer's hard drive. Often the installerprogram will decompress the data that is included with the installerimmediately before writing the information to a hard drive. Softwareupdates, which are often downloaded from the Internet, generally workthe same way. When an update is run, the installer file generallydecompresses the data, and then updates the correct program or operatingsystem. Installing software usually involves double-clicking aninstaller icon, and then clicking “I Agree” when the license agreementpops up. A computer operator may have to choose what directory on a harddisk that the software should be installed in, but often the installerwill even choose that for the computer operator. Some software can beinstalled by simply dragging a folder or application program onto a harddrive.

The term “computer port” as is used herein refers to a physical orwireless connection on a programmable computer, an optical projectorand/or another peripheral device that functions to provide communicationbetween two or more instruments or devices, usually by one or morecommunication cables being inserted into one or more of the portspresent on the instruments or devices or wirelessly (using, for example,Wi-Fi, Bluetooth, 4610× and/or the like) in a manner that information(including data) may be transferred from one instrument or device to theother, or vice versa, or between each of the devices or instruments.

The phrase “computer usable medium” as is used herein means any portableor non-portable medium in which computer readable program code can bephysically embodied, including, but not limited to, an optical disk, aCD, a CD-ROM, a CD-R, a floppy disc, a drive, a hard drive, a DVD, a USBmemory key, a SD memory cards, or the like.

The phrase “configure” as is used herein means to design, arrange, setup and/or shape, generally with a view to specific applications or uses.

The phrase “configurator” as is used herein means a software applicationor tool that typically is employed to design products that fulfill ormatch the requirements, desired or needs of customers (or others).

The phrases “console,” “system console” and “root console” as are usedherein mean the text entry and/or display device for computer systemadministration (or other) messages, particularly those from a BIOS orboot loader, a kernel, an init system and/or a system logger. It is aphysical device generally including a keyboard and/or a screen. Ontraditional mini computers, the console is “serial console,” an RS-232serial link to a terminal such as a DEC VT100. This terminal is usuallykept in a secured room as it could be used for certain privilegedfunctions, such as halting the system or selecting which media to bootfrom. Large midrange systems, such as those that are commerciallyavailable from Sun Microsystems, Inc. (Palo Alto, Calif.),Hewlett-Packard Company (Palo Alto, Calif.) and IBM (Armonk, N.Y.),generally still use serial consoles. In larger installations, theconsole ports are typically attached to multiplexers ornetwork-connected multiport serial servers that permit an operator toconnect his computer terminal to any of the attached servers. Onprogrammable computers (PCs) and workstations, the computer's attachedkeyboard and/or monitor typically have the equivalent function. Becausemonitor cables generally carry video signals, they typically cannot beextended to a significant distance from the computer (i.e., typicallynot father than about 200 feet and, if amplified, about 1,000 feet).Often, installations with many servers, therefore, use keyboard/videomultiplexers (KVM switches) and, possibly, video amplifiers tocentralize console access. In recent years, KVM/IP devices have becomecommercially available from sources known by those having ordinary skillin the art, which allow a remote computer (i.e., a computer to which auser does not have physical access, but which he or she can accessand/or manipulate via some kind of network) to view video output and/orsend keyboard input via any TCP/IP network and, therefore, the Internet.Some PC BIOSes, particularly in servers, also support serial consoles,giving access to the BIOS through a serial port, so that the simpler andcheaper serial console infrastructure can be used. Even where BIOSsupport is lacking, some operating systems, e.g. FreeBSD and Linux, canbe configured for serial console operation either during bootup, orafter startup. It is usually possible to log in from the console.Depending upon configuration, the operating system may treat a loginsession from the console as being more trustworthy than a login sessionfrom other sources. Routers and managed switches (as well as othernetworking and telecoms equipment) may also have console ports, inparticular Cisco Systems Inc. (San Jose, Calif.) routers and switchesthat use Cisco Systems Inc. IOS (internal operating system) are normallyconfigured via their console ports.

The term “controller” as is used herein means a device that transmitsinformation back and forth from a CPU and main memory to one or moreperipherals. Each device generally has its own way of formatting andsending data, and part of the controller's function is to facilitatethis.

The abbreviation “D” as used herein means “dimensional.” For example, 2Drefers to two dimensional, and 3D refers to three dimensional.

The phrase “database engine” as is used herein refers to that part of adatabase management system (DBMS) that stores and/or retrieves data.Most DBMS's include an Application Programming Interface (API) thatenables a computer operator to directly control the engine without goingthrough the DBMS's user interface.

The phrase “data transfer device” as is used herein means a peripheral,such as a modem, that allows information to be sent and received betweena plurality of computers. A modem permits information to be sent acrossa telephone line, for example, typically at a rate of 56 kilobits (Kb)per second, or approximately 56,000 bits per second (bps).

The phrase “data update server” as is used herein means a server thatcontains data on one or more physical media devices (DVD, CD-ROM, harddrive, thumb drive, tape drive, RAM drive and/or the like). The data istypically marked or labeled as data that has been updated, changed,modified and/or deleted. The data update server typically receivesrequests for data from one or a plurality of remote devices in aspecific communication protocol and sends the updated, changed, modifiedand/or deleted data to the remote device(s) in a specific communicationprotocol.

The term “device” as is used herein means a unit of hardware thatgenerally is outside or inside of a case or housing for the essentialcomputer (processor, memory and data paths), and that is capable ofproviding input to the essential computer and/or of receiving output. Itmay include, for example, keyboards, mice, display monitors, hard diskdrives, CD-ROM players, printers, audio speakers and microphones,projectors, cameras and other hardware units, which are known by thosehaving ordinary skill in the art. Some devices, such as a hard diskdrive or a CD-ROM drive, while physically inside of the computerhousing, are considered devices because they are separately installableand replaceable. With notebook and smaller computers, devices tend to bemore physically integrated with the “non-device” part of the computer.The units of a computer to which the term device is generally notapplied include the motherboard, the main processor and additionalprocessors, such as numeric coprocessors, and random access memory(RAM). The term peripheral is sometimes used as a synonym for device orany input/output unit.

The terms “display,” “display screen,” “monitor,” “computer screen” and“projector” as are used herein, depending upon the context, mean thevarious devices that can display, show and/or illustrate a computer'suser interface and open programs, allowing a user (plan drawer or thelike) to interact with the computer, typically using a keyboard andmouse, such as an LCD monitor, or data, information and/or graphics, ora display itself (i.e., that which is shown on a screen or monitor).Other known devices may also include display-type screens and/ordisplays.

The terms “dock” and “docking stating” as are used herein mean a cradlefor a portable device that generally serves to charge the unit and/orconnect it to other sources or destinations. For example, it may be abase station for a laptop computer that turns the portable computer intoa desktop system. It generally uses a large plug and socket to quicklyconnect the laptop, which duplicates all of the cable lines for themonitor, printer, keyboard, mouse and/or the like. The docking stationtypically has one or two slots for expansion boards, and may housespeakers and other peripherals, such as an optical drive.

The phrase “Document Explorer” as is used herein refers to software thatfunctions to access and/or display local and/or online Help. DocumentExplorer of Microsoft Corporation (Redmond, Wash.), for example, has itsown Help documentation that may be accessed by opening a Commerce Server2007 Help system, clicking the “Help” menu, and then clicking “Help onHelp.” Document Explorer typically provides a table of contents, anindex, a full-text search and Help favorites for bookmarking topics, sothat a computer operator may easily find information. When the computeroperator browses the table of contents or uses the index, local Help isgenerally accessed. When the operator uses the full-text search feature,there becomes an option of searching local and online content. UsingDocument Explorer, an operator can see the table of contents or searchresults while viewing a Help topic. A “Help Favorites” tab may permit anoperator to relatively quickly display topics and searches that arereferred to frequently.

The term “download” as is used herein means to transfer (data orprograms) from a server, host computer and/or other source to anothercomputer or device.

The phrase “Device Drivers, Diagnostics and Technical Information” as isused herein means a program that serves as a resource for devicedrivers, diagnostics and technical information in the event that theyare required or desired to resolve a problem with a computer system. Itis generally compatible with a variety of different computers, and issupported by Dell Technical Support when it is provided by Dell Inc.,and employed with a Dell system.

The terms “driver” and “device driver” as are used herein mean a programthat controls a particular type of device that is generally attached toa computer. There are device drivers for printers, displays, CD-ROMreaders, diskette drives and the like, and many device drivers may bebuilt into an operating system or other computer-related product.However, if a new type of a device is subsequently purchased that suchoperating system did not anticipate, a new device driver may need to beinstalled. A device driver essentially converts the more generalinput/output instructions of an operating system to messages that thedevice type can understand. Some Windows programs are virtual devicedrivers, and these programs may interface with the Windows VirtualMachine Manager. There is usually a virtual device driver for each mainhardware device in a system, including the hard disk drive controller,keyboard, and serial and parallel ports. They are generally used tomaintain the status of a hardware device that has changeable settings.In Windows operating systems, a device driver file usually has a filename suffix of DLL or EXE, and a virtual device driver usually has thesuffix of VXD.

The phrase “Driver Download Manager” as is used herein means afunctionality which is available, for example globally across thesupport Dell web site, to facilitate a downloading of files, forexample, from Dell, Inc. (Roundrock, Tex.). Generally, the time taken todownload files using this tool is significantly shorter than would occurotherwise, often up to a 30-40% reduction in time, depending upon theInternet connectivity. It also may include one or more mechanisms tofacilitate the process of downloading files, for example, from theforegoing web site. For example, it may permit a computer operator topause and resume downloads, with the progress of a download beingcapable of being saved via an icon on the computer, which can often berestarted at any time. It may also permit the computer operator torestart a download in the event of an interruption or termination of anInternet connection during a download, as the Driver Download Managermay save the progress. Additional information about Driver DownloadManagers is present on the foregoing web site.

The phrases “Dynamic Link Library” and “DLL” as are used herein means anexecutable file that allows computer programs to share code and/or otherresources that are necessary or desirable to perform particular tasks.Microsoft Windows, for example, provides DLL files that containfunctions and resources that allow Windows-based programs to operate inthe Windows environment.

The phrase “emulator” as is used herein means a hardware, software or acombination of the two that enables a computer to act like anothercomputer, and run applications written for that computer. It may be, forexample, a hardware add-on that actually contains an instructionexecution module for the emulated computer or software that provides atranslation layer from the emulated computer to the computer it isrunning in. The emulator may generally translate machine language, callsto the operating system and/or the like.

The phrases “Enterprise software” and “Enterprise application software”as are used herein mean software that is intended to solve an enterpriseproblem, rather than a departmental problem, and is often written usingan Enterprise Software Architecture. Large enterprises often attempt tobuild enterprise software that models the entire business enterpriseand/or is the core Information Technology (IT) system of governing theenterprise and the core of communication within the enterprise. Asbusiness enterprises have similar departments and systems in common,enterprise software is often available as a suite of programs that haveattached enterprise development tools to customize the programs to thespecific enterprise. Enterprise level software is software whichprovides business logic support functionality for an enterprise,typically in commercial organizations, which aims to improve theenterprise's productivity and efficiency. Services that are provided byenterprise software are typically business-oriented tools such as onlineshopping and online payment processing, interactive product catalogue,automated billing systems, security, content management, CRM, ERP,Business Intelligence, HR Management, Manufacturing, EAI, EnterpriseForms Automation and the like. Characteristics of enterprise softwareare performance, scalability and/or robustness. Enterprise softwaretypically has interfaces to other enterprise software (for example LDAPto directory services) and is centrally managed. Enterprise software isoften designed and implemented by an Information Technology (IT) groupwithin an enterprise, but it may also be purchased from an independententerprise software developer, that often installs and maintains thesoftware for their customers. Another model is based on a concept calledon-demand software, or Software as a Service. The on-demand model ofenterprise software is made possible through the widespread distributionof broadband access to the Internet. Software as Service vendorsgenerally maintain enterprise software on servers within their ownenterprise data center, and then provide access to the software to theirenterprise customers via the Internet. Enterprise software is oftencategorized by the business function that it automates, such asaccounting software or sales force automation software. The areenterprise systems devised for particular industries, such asmanufacturing enterprises. Enterprise application software isapplication software that often performs business functions such asaccounting, production scheduling, customer information management, bankaccount maintenance, and the like. It is frequently hosted on servers,and generally simultaneously provides services to a large number ofenterprises, typically over a computer network. This is in contrast tothe more common single-user software applications, which generally runon a user's own local computer and serve only one user at a time.

The term “estimate” as is used herein means an opinion, anapproximation, a tentative evaluation or a rough calculation of anamount, value or the like, and is not a price.

The term “EXE” as is used herein means the common file name extensiondenoting an executable file (a program) in the DOS, OpenVMS, MicrosoftWindows, Symbian, OS/2 and/or other operating systems. Besides theexecutable program, many EXE files contain other components calledresources, such as bitmaps and icons which the executable program mayuse for its graphical user interface.

The phrase “executable file” as is used herein generally means asequence of subroutine calls that cause a computer to perform indicatedtasks according to encoded instructions, as opposed to a file that onlycontains data.

The term “execute” as is used herein in connection with a computer,console, server system or the like means to run, use, operate or carryout an instruction, code, software, program and/or the like.

The term “file” as is used herein means a set of related or otherrecords (written, electronic or otherwise) that are kept together.

The term “geospatial criteria” as is used herein means the data orinformation that identifies the geographic location of features and/orboundaries on Earth, such as natural features (oceans, land, lakes,mountains, valleys and/or the like) or constructed features (buildings,roads, postal codes, cities and/or the like) and more. Geospatialcriteria is generally any data that is, or could be, converted to alatitude and/or longitude coordinate point or points that define aspecific or unique location or group of locations linked together on theEarth surface.

The term “hard disk” as is used herein means a part of a unit (a “diskdrive,” “hard drive,” or “hard disk drive”) that stores and/or providesrelatively rapid access to large amounts of data and/or information onan electromagnetically charged surface, or set of surfaces. Today'scomputers typically come with a hard disk that contains several billionbytes (gigabytes) of storage (i.e., the place where data is held in anelectromagnetic or optical form for access by a computer processor).

The phrase “hard drive” as is used herein means a unit that stores dataon a computer. It generally houses a hard disk, where all of thecomputer files and folders are generally physically located. Currently,a typical hard drive can hold over 100 GB of data, and other hard drivescan hold more data. The data is generally stored on a stack of disksthat are mounted inside of a solid encasement. These disks generallyspin extremely fast (often at either 5400 or 7200 RPM), so that data canbe accessed immediately from anywhere on the drive. The data is storedon the hard drive magnetically, so it stays on the drive even after thepower supply is turned off. In order to install new software on acomputer, a user often needs to run an installer program.

This program unpacks compressed data included with the installer andwrites new information to a hard drive. While some installers do not usecompressed data, most use some level of compression since it reduces thesize of the files included with the installer. This is especiallyhelpful when downloading programs or software updates from the Internet.RAID (Redundant Array of Independent (or Inexpensive) Disks) is acategory of disk drives that employ two or more drives in combinationfor fault tolerance (an ability of a system to respond gracefully to anunexpected hardware and/or software failure) and performance. RAID diskdrives are used frequently on servers, but are not generally necessaryfor personal computers. RAID allows a user to store the same dataredundantly (in multiple paces) in a balanced way to improve overallperformance.

The phrase “hardware” as is used herein means a physical aspect ofcomputers, and distinguishes the “box” and the electronic circuitry andcomponents of a computer from the program that is put into it to make itperform different functions. Hardware includes not only the computerproper (central processing unit, input/output devices, main memory,secondary memory devices, chips, boxes, wires, keyboards, speakers,disks, printers, mice, monitors and/or the like), but also the cables,plugs, connectors, power supply units and peripheral devices, such asthe keyboard, mouse, audio speakers and printers.

The phrase “immediately” as used herein typically means right away(i.e., within a period of less than about a few minutes) but, in somecases, may mean within the same day.

The term “industrial” as is used herein means a discipline that isconcerned with the efficient production of industrial items, generallyas affected by elements such as plant and procedural design, themanagement of materials and energy, the integration of workers withinthe overall system and/or the like.

The term “init” as is used herein means a Macintosh computer routinethat typically is run when the computer is started or restarted. It isused to load and activate drivers and system routines. Many inits arememory resident.

The term “install” as is used herein in connection with a softwareprogram generally means writing the necessary data for running theprogram on a hard drive. Often, the installer program will decompressthe data included with the installer immediately before writing theinformation to a hard drive. Software updates, which are oftendownloaded from the Internet, typically work the same way. When theupdate is run, the installer file generally decompresses the data andthen updates the correct program or operating system.

The phrases “installer program” and “installer” as are used herein meana computer program that has an ability to install a new program on acomputer or update a program that is currently present on a hard drive.Generally, it can also update or add files to an operating system. Mostinstallers can be run by double-clicking the installer icon and thenchoosing a folder into which the software should be installed. Theinstallers generally decompress and write the data on the hard drive.Once the installer is finished, the new or updated software can often byused by a computer operator right away. If any system files have beeninstalled, the computer operator may be asked to restart a computerbefore using the new software (because system files may only be able tobe loaded during a computer's boot process).

The term “Internet” as is used herein means a global network thatconnects a plurality, and possibly millions, of computers together,often permitting exchanges of data, news and/or opinions. Unlike onlineservices, which are generally centrally controlled, the Internet isdecentralized by design. Each Internet computer (host) is generallyindependent. Its operators can choose which Internet services to use andwhich local services to make available to the global Internet community.There are a variety of ways to access the Internet, including onlineservices such as America Online, and commercial Internet ServiceProviders, which are well known by those having ordinary skill in theart.

The term “interpreter” as is used herein is a software program thatfunctions like a compiler, but that performs a translation and executionin short bursts in which a small portion of source code, such as onestatement, is translated and executed, and then another small portion ofsource code, such as a second statement, is translated and executed, andso forth.

The term “Intranet” as is used herein means a privately maintainedcomputer network that can generally be accessed only by authorizedpersons or entities, such as members, employees or representatives of abusiness, institution, organization or other person or entity that ownsit.

The phrase “1stPricing” as used herein refers to 1ST Pricing, which iscurrently physically located at 1858 East 20th Street, Signal Hill,Calif., 90755, and is a subsidiary of California Distribution Center,Inc. (a California corporation). 1stPricing has an online 1stPricing website or other designated web sites.

The phrase “1stWindows” as used herein refers to 1stWindows, which iscurrently physically located at 1858 East 20th Street, Signal Hill,Calif., 90755, and is a subsidiary of California Distribution Center,Inc. (a California corporation). 1stWindows has an online 1^(st)Windowsweb site or other designated web sites.

The abbreviation “ISP” as used herein means Internet Service Provider.

The term “Java” as is used herein means one type of computer programminglanguage that can be used to create computer software programs. It isnot tied to any particular processor type and, thus, will work on manydifferent types, and makes, of computers. It is typically is usedworldwide, and permits software to be easily exchanged and executed viathe World Wide Web (WWW or Web). Further, it includes a library of extrasoftware that can be employed when a computer programmer is developing aprogram. The library permits the programmer to create graphics,communicate over networks, interact with databases, and the like.Typically, Java applications have a similar basic structure including,for example, comments (first few lines of the program that start withthe symbols //, and help readers of the code understand the purpose ofthe program, and what it accomplishes), a class definition (whichdefines the Java program), a main method (location at which processingcommences, with each programming statement (in the form of lines ofcode) in the main method being executed one at a time in order until theend of the method is reached, and is preceded by the words “class,”“public,” “static” and “void”), white space (spaces that separate thewords and symbols that are used in a program, and include blanks, tabsand newline character), and PrintIn method (which prints specifiedcharacters to a screen in a character screen, and is enclosed in doublequote characters (″)). When the program is executed, it calls thePrintIn method to print the first statement, and then the secondstatement, and so forth. The program terminates with the last statement.Additional information about Java is present in John Lewis et al., JavaSoftware Solutions, (2nd Edition, Pearson Education, Inc., 2007, ISBN0-13-222251-5).

The term “kernel” as is used herein means a program that typicallyconstitutes the central core of a computer operating system. Ittypically has complete control over everything that occurs in a computersystem. The kernel itself typically does not interact directly with auser, but rather interacts with other computer programs, as well as withhardware devices on the system, including the processor (centralprocessing unit or CPU) and disk drives. The kernel typically is thefirst part of the operating system to load into memory during booting(i.e., system startup), and it typically remains there for the entireduration of the computer session because its services are typicallyrequired continuously.

The phrases “LAN” and “local area network” as are used herein mean acomputer network typically covering a relatively small physical area,such as a house, an office or a small group of buildings, such as aschool or an airport. In contrast with WANs, LANs typically have higherdata-transfer rates, smaller geographic area and a lack of a need forleased telecommunication lines. LANs are well known by those havingordinary skill in the art.

The term “LEED” as is used herein means a third-party certificationprogram that is the nationally-accepted benchmark for the design,construction and operation of high-performance green buildings. LEEDgenerally gives building owners and operators the tools that they needto have an immediate and measurable impact on their buildings'performance. LEED promotes a whole-building approach to sustainabilityby recognizing performance in five key areas of human and environmentalhealth: (i) sustainable site development, (ii) water savings, (iii)energy efficiency, (iv) materials selection; and (v) indoorenvironmental quality. The LEED for New Construction Rating System isdesigned to guide and distinguish high-performance commercial andinstitutional projects, including office buildings, high-riseresidential buildings, government buildings, recreational facilities,manufacturing plants and laboratories. LEED credits take into accountdifferent criteria, such as how close a material is made to aconstruction project, how much recycled material is present in theproduct, and the like. The material may have more than one LEED ratingand is usually multiplied by the price of the product to get the LEEDcredit earned. LEED credits may be determined and procured by thosehaving ordinary skill in the art. Typically, to obtain LEED credits, aprocurement form must generally be filled out showing how the creditswere derived, and they usually include a signature of someone who hasverified their accuracy.

The term “library” as is used herein means: (i) a collection of aplurality of programs and/or data files; or (ii) a set of a plurality ofready-made software routines (functions) for programmers. The routinesare generally linked into the program when it is compiled.

The term “local” as is used herein means a computer network thattypically connects one or more computers together, which can generallyshare data, and communicate without requiring the data to be sent overthe Internet.

The phrase “merge module” as is used herein refers to a packet ofcomputer software code which, when compiled under one programminglanguage, can be used by various programming languages, such as VB.net,C#.net, C++, and others without recompiling or converting the code intothe that specific language (VB.net, C#.net, C++, and/or the like).

The phrases “metropolitan area network” and “MAN” as are used hereinmean a relatively large computer network that usually spans a city or alarge campus. They typically interconnect a plurality of local areanetworks (LANs) using a high-capacity backbone technology, such asfiber-optical links, and provide up-link services to wide area networks(WANs) and/or the Internet.

The term “modem” as is used herein means a device or program thatenables a computer to transmit data over, for example, telephone orcable lines. Computer information is generally stored digitally, whereasinformation transmitted over telephone lines is transmitted in the formof analog waves, and a modem may convert between these two forms.

The phrase “native software” as is used herein means software thatgenerally is specifically written, compiled and/or or assembled to runon a particular system. Native code generally uses all of the individualfeatures of the target system with no regard for generality orportability.

The phrases “network” and “computer network” as are used herein mean aplurality or collection of computers, consoles and/or devices that aretypically connected together by communications channels that facilitatecommunications among users and/or allows users to share resources withother users in a manner that they can exchange information. Connectingtwo or more computers together can significantly increase the functions,and amount of functions, that can be performed by the computers. If anetwork includes a printer (or one or more other peripherals), anycomputer that is connected to the network can print a document on thatprinter (or communicate with the other peripherals). Networks may beclassified according to a wide variety of characteristics. Computernetworks can be classified according to the hardware and softwaretechnology that is used to interconnect the individual devices in thenetwork, such as optical fiber, Ethernet, Wireless LAN, HomePNA, Powerline communication or G.hn. Ethernet uses physical wiring to connectdevices. Frequently deployed devices include hubs, switches, bridgesand/or routers. Wireless LAN technology is designed to connect deviceswithout wiring (in contrast with wiring). These devices use radio wavesor infrared signals as a transmission medium. ITU-T G.hn technology usesexisting home wiring (coaxial cables, phone lines and/or power lines) tocreate a high-speed (typically up to 1 Gigabit/s) local area network.Networks are often classified as local area network (LAN), wide areanetwork (WAN), Metropolitan area network (MAN), personal use network(PAN), virtual private network (VPN), campus area network (CAN), storagearea network (SAN) and others, which are known by those having ordinaryskill in the art, depending upon their scale, scope and purpose. As isknown by those having ordinary skill in the art, usage, trust level andaccess right often differ between these types of network. For example,LANs tend to be designed for internal use by an organization's internalsystems and employees in individual physical locations, such as abuilding, while WANs may connect physically separate parts of anorganization and may include connections to third parties.

The term “offline” as is used herein means not turned on and/orconnected, or not connected to the Internet, depending upon thecircumstances, which may readily be determined by those having ordinaryskill in the art.

The term “online” as is used herein means turned on and/or connected, orconnected to the Internet, depending upon the circumstances, which mayreadily be determined by those having ordinary skill in the art. Forexample, printers are online when they are ready to receive data from acomputer. In contrast, when a printer is offline (not turned on and/orconnected), certain tasks, such as advancing paper, may be performed,but data cannot be sent to the printer. Also, computer operators aregenerally considered to be online when they are connected to a computerservice through a modem or to the Internet.

The phrase “operably connected with” as is used herein in connectionwith a plurality of instruments or devices, such as one or morecomputers or consoles, or one or more computers or consoles and one ormore peripheral devices, means that the instruments or devices areconnected with each other, usually by one or more communication cablesinserted into one or more ports present on the instruments or devices orwirelessly (using, for example, Wi-Fi, Bluetooth, 4610X and/or the like)in a manner that information (including data) may be transferred fromone instrument or device to the other, or vice versa, or between thedevices or instruments.

The phrase “operating system” as is used herein means software thatgenerally communicates with computer hardware on a most basic level, andis the main software of a computer. Without an operating system,generally no software programs can run. The operating system generallyallocates memory, processes tasks, accesses disks and peripherals,and/or serves as the user interface. For example, it provides a userinterface that allows a user to interact with the machine, such asclicking on an icon to delete a file. It also manages computer resourcessuch as the CPU and main memory. It generally decides when programs canrun, where they are loaded into memory, and how hardware devicescommunicate. As a result of operating systems such as Windows, Mac OSand Linux, programmers can write code using a standard programminginterface, or Application Program Interface. Without an operatingsystem, programmers would often need to write about ten times as muchcode to get the same results. Other known operating systems includeWindows 98, Windows NT, Windows 2000, Windows Server 2003, WindowsServer 2008, Windows Vista, Windows XP and Windows 7.

The term “palette” as is used herein means any type of computer,console, server and/or on-screen window and/or toolbar that holds one ormore (usually related) icons, buttons, menus and/or the like within oroutside of an application. A palette preferably, and typically, includesone or a plurality of different libraries.

The term “parametric” as is used herein means an object in a CAD (orother software design or other program) model that can be modified bychanging one or a plurality of the parameters used to create it, such asone or more dimensions, design constraints and/or the like.

The phrases “parametric symbol” and “object” as are used herein mean ageneric or manufacturer/distributor/other specific architectural, civilengineering, industrial engineering or other 2D or 3D drawing that istypically of a common architectural, mechanical, construction orelectronic element, such as a window, an entry or interior door, anacrylic glass block, a sky light or the like, and that includes one or aplurality of parameters about its characteristics, such as size, color,type of material (wood, vinyl, aluminum, etc.), presence or absence ofgrids, number of grids, type of glass, coating on the glass, presence orabsence of breather tubes, and/or the like. Parametric symbols typicallyenable an architect, civil or industrial engineer and/or other designerand/or architectural CAD software (or other software design tool) towork with an object as a real-world entity, rather than just as linesand polygons.

The term “parameter” as is used herein means the desired or necessarycharacteristic(s) for a particular construction plan (or other) element,such as size (height, width and/or depth), type of material (vinyl,wood, aluminum or the like), color, type of glass, coating on glass,header height, presence or absence of grids, number of grids, presenceor absence of breather tubes, presence or absence of Argon gas, and/orthe like. For example, a window may have parameters of being 3′×6′ insize (as opposed to a different size), made out of steel (as opposed towood, aluminum or some other material), being vinyl clad (rather thannot being vinyl clad), including low E glass (as opposed to some othertype of glass) and having the color white (as opposed to some othercolor).

The phrase “parametric symbol schedule” as is used herein means aschedule that includes one or a plurality of selected parametricsymbols, and selected characteristics that correspond with the selectedparametric symbols. It may or may not include price information for theselected parametric symbols.

The terms “peripheral” and “peripheral device” as are used herein meanany external, internal and/or other device that generally is not part ofthe essential computer (the memory and microprocessor) and providesinput and/or output in connection with a computer. For example, akeyboard, a mouse and a CD-ROM drive are input peripherals, while amonitor, a printer and a projector are output peripherals. Peripheraldevices typically operate at the periphery, or outer edges, of a system,and can be external, such as a mouse, keyboard, printer, monitor,external Zip drive, scanner, CD-R drive, audio speaker, touch screen,plotter or goggle, or internal, such as a CD-ROM drive, CD-R drive orinternal modem. Some peripherals, such as external hard drives, provideboth input and output for the computer.

The phrases “personal area network” and “PAN” as are used herein mean acomputer network that is typically used for communication among devices,including telephones and personal digital assistants, in proximity to anindividual's body. The devices may or may not belong to the person inquestion. The reach of a PAN is typically a few meters. PANs can be usedfor communication among the personal devices themselves (intrapersonalcommunication) and/or for connecting to a higher level network and/orthe Internet. Personal area networks may be wired with computer buses,such as universal serial buses (USBs) and fire walls. A wireless PAN canalso be made possible with network technologies such as Infrared DataAssociation, Bluetooth, UWB, Z-wave and ZigBee, as is known by thosehaving ordinary skill in the art.

The terms “plurality” and “multiple” as are used herein mean more thanone, for example, two, three, four, five, six, seven, eight, nine, ten,eleven, twelve, thirteen, fourteen, fifteen, twenty, twenty-five,thirty, thirty-five, forty, forty-five, fifty, seventy-five, onehundred, two hundred, three hundred, four hundred, and so forth.

The terms “preferably” and “preferable” as are used herein mean that anelement, step, limitation and/or the like generally is optional, but ismore desirable than another element, step, limitation and/or the like orthan not including the same at all.

The term “price” as is used herein means the actual cost at which amaterial, good, item or product, such as a window or door havingspecified features (height, width, depth, material, glass type and/orthe like), is procured or obtained, typically as a result of a purchaser(homeowner, building owner, contractor, subcontractor, builder and/orthe like) purchasing the same from a seller (manufacturer, distributor,other business, entity or individual and/or the like). A price may ormay not include additional costs, such as sales tax, shipping fees,other administrative fees and/or the like. A price is not an estimateand, in contrast with an estimate, may generally be relied upon by alending institution, such as a bank, when making decisions with respectto loans, mortgages and/or similar lending instruments.

The phrase “price schedule” as is used herein means an editable ornon-editable schedule, spreadsheet, table and/or the like that includespricing data and/or information that corresponds with one or a pluralityof construction plan (or other) elements and/or parametric symbols, andone or a plurality of selected characteristics that correspond with thevarious construction plan (or other) elements and/or parametric symbols,such as height, width, color, quality and/or the like, as is discussedherein. The price schedule may optionally include statements, data,information, columns, rows, headings, letters, numbers, symbols and/orthe like, and may be in any one of many different forms required ordesired by a user or otherwise, as is known by those having ordinaryskill in the art. No particular form or format is required. Other termsthat may be used to refer to a “price schedule” include a “Bill ofMaterials” (BOM), “Take Off” and/or the like, which are included in thisdefinition for “price schedule.”

The terms “processor,” “microprocessor,” “CPU” and “Central ProcessingUnit” as are used herein mean the logic circuitry of a computer, whichresponds to, and processes, the basic instructions that drive acomputer, which are generally provided by one or a plurality of computerprograms. The processor is on a chip (a microprocessor), a part of themain circuit board of a computer.

The phrase “Product Specification Criteria” as is used herein means agenerally written statement regarding one or a plurality of required ordesired characteristics of an item, element, product, material and/orthe like, which is generally documented in a manner that facilitates itsprocurement, production and/or acceptance. There may be new productspecifications that can subsequently be attached to a procurement,production or other schedule that were originally unforeseen (at aprevious time) that a scheduling or other system/apparatus describedherein can transmit or send back from a database to a user's computer orconsole, or otherwise create, produce and/or provide, such as logos,installation instructions, manuals, warranty information and/or thelike, either with or without a corresponding (or other) price. Forexample, if a user chooses, the user may select in the system or itsprogram that the user only wants LEED approved products. Thus, in thiscase, only products that meet the specification as LEED will be sentback from the database, or otherwise provided, to the user's computer orconsole. The same is true with respect to other types of productspecification criteria. A wide variety of product specification criteriaare well known by those having ordinary skill in the art. Examples ofproduct specification criteria, include, but are not limited to, color,size, dimensions, weight, material, type of glass (when glass ispresent), energy rating, compliance with criteria of BOMA (BuildingOwners and Managers Association International), NAHB, HomeStar, CalStar,RFID and/or other programs, installation instruction, warrantyinformation, amount of VOC and/or other pollutants, and/or the like.Many other product specification criteria are described elsewhereherein.)

The term “RAM” as is used herein means random access memory, a type ofcomputer memory that can generally be accessed randomly, that is,generally any byte of memory can be accessed without touching thepreceding bytes. RAM is the most common type of memory found incomputers and other devices, such as printers. It also refers to mainmemory, the memory available to computer programs. For example, acomputer with 8 MB RAM has approximately 8 million bytes of memory thatprograms can use. Currently, a typical computer may come with 256million bytes of RAM, and a hard disk that can hold 40 billion bytes.RAM generally comes in the form of “discrete” (separate) microchips, andalso in the form of one or more modules that may plug into holes in acomputer's motherboard. These holes connect through a bus or set ofelectrical paths to the processor. The hard drive, on the other hand,stores data on a magnetized surface that looks like a phonograph record.Most personal computers are designed to allow a user to add additionalRAM modules up to a certain limit. Having more RAM in a computergenerally reduces the number of times that the computer processor has toread data in from a hard disk, an operation that generally takes muchlonger than reading data from RAM.

The term “remote” as is used herein means a device that is locatedphysically not near other similar devices (relatively or otherwise),such as may be present in another room, building, campus, city, state,country and/or the like, depending upon the particular circumstances, asmay be determined by those having ordinary skill in the art.

The phrases “remote server,” “remote host” and “remote computer” as areused herein mean a computer, peripheral and/or similar device or thelike that typically is not attached to a user's keyboard (or otherperipheral device), but over which the user has at least some control(>0% to 100%), and is in a remote (relatively distant) location, whetherin the same room, in another part of a building, in another part of agroup of buildings, in another part of a specified geographical area,such as a town, a city, a state, a country or a continent, or in someother part of the world. These phrases often refer to an any computer,peripheral and/or similar device that offers data, information,graphics, sound and/or video to one or a plurality of other computers,peripherals and/or similar devices. Most of the time, this refers toconnecting to a server across the Internet, which is often performed fora purpose of obtaining and/or providing media, data, information and/orthe like (or anything else that a user may want to send and/or procureto and/or from the other computer, peripheral and/or device). Largenetworks will often have a “remote DESKTOP server” as well, allowinglogin over the local network or across the Internet to use the server,network and Internet connection as if the user were physically sittingin front of it. While there phrases typically refer to a server in aprivate network or to the public Internet, it also refers to a user's PCin another location that is accessed over the Internet for file transferor remote control operation.

The phrase “RFID” as used herein means Radio Frequency IDentification,which is a data collection technology that uses electronic tags forstoring data. The tag, also known as an “electronic label,”“transponder” or “code plate,” is made up of an RFID chip attached to anantenna. Transmitting in the kilohertz, megahertz and gigahertz ranges,tags may be battery-powered or derive their power from the RF wavescoming from the reader Like bar codes, RFID tags identify items.However, unlike bar codes, which must be in close proximity and line ofsight to a scanner for reading, RFID tags do not require line of sight,and can be embedded within packages. Depending upon the type of tag andapplication, they can be read at a varying range of distances. Inaddition, RFID-tagged cartons rolling on a conveyer belt can be readmany times faster than bar-coded boxes. Additional information aboutRFID is present in a wide variety of Internet web sites and in the RFIDjournal, which provides complete news, information and features inconnection with RFID technology, and is available at the RFID journalweb site.

The terms “run” and “execute” as are used herein mean to perform anaction, a command, an instruction and/or the like, or to be in partialor full operation (typically in full operation), for example, computersoftware that runs on a computer, or a computer software program that isexecuted.

The phrase “run time” as is used herein refers to the actual executionof a program. “At runtime” means while a program is running.

The term “scanner” as is used herein means an input device that convertstext, photographs and/or graphics into machine readable form.

The terms “screen” and “screen shot” as are used herein mean a pictureor illustration of that which is displayed on a computer, console,projector, monitor, other screen and/or the like. Numerous screen shotsare illustrated in the various figures set forth herein.

The term “serial console” as is used herein means a text entry and/ordisplay device for system administration messages, particularly thosefrom a BIOS or boot loader, a kernel, an init system and from a systemlogger. It is a physical device generally including a keyboard and ascreen.

The term “server” as is used herein means a computer, device or the likeon a network that manages network resources (generally any item that canbe used). For example, a file server is a computer and storage devicethat is dedicated to storing files. Any user on the network can storefiles on the server. A print server is a computer that manages one ormore printers, and a network server is a computer that manages networktraffic. A database server is a computer system that processes databasequeries (requests for information from a database). Servers are oftendedicated, meaning that they perform no other tasks besides their servertasks. On multiprocessing operating systems, a single computer canexecute several programs at once. A server in this case could refer tothe program that is managing resources rather than the entire computer.

The phrase “service pack” or “patch” as are used herein means anorderable, downloadable or other update or enhancement to a softwarethat typically corrects one or more existing problems and, in somecases, delivers or provides product enhancements. A service pack istypically a collection of updates and fixes for an operating system or asoftware program. Many of these patches are often released before thelarger service pack, but the service pack generally allows for an easy,single installation. Service packs also often include new features inaddition to fixes. IBM Corporation (Armonk, N.Y.) and MicrosoftCorporation are examples of entities that use these terms to describetheir periodic product updates. When a new product version comes out oris otherwise released, it usually incorporates the fixes from theservice packs that have been shipped to update the previous productversion. A wide variety of service packs are commercially available fromsources that are known by those having ordinary skill in the art, suchas IBM Corporation and Microsoft Corporation.

The phrases “software application” and “application software” as areused herein mean a computer software that is designed to help a userperform a particular task and include, for example, word processors,spreadsheets, media players, database applications and/or the othertasks that are described herein, or any combination thereof. Anapplication can typically manipulate text, numbers, graphics, or acombination of these elements. An application suite generally comprisesmultiple applications bundled together. They usually have relatedfunctions, features and/or user interfaces, and may be able to interactwith each other, for example, open each other's files. Businessapplications often come in suites, e.g. Microsoft Office, OpenOffice dotorg and iWork, which bundle together a word processor, a spreadsheet,and the like. Suites also exist for other purposes, such as graphicsand/or music. Enterprise software addresses the needs of organizationprocesses and data flow, often in a large distributed environment.Examples include Financial, Customer Relationship Management, and SupplyChain Management. Departmental Software is a sub-type of EnterpriseSoftware, with a focus on smaller organizations or groups within a largeorganization. Examples include Travel Expense Management, and ITHelpdesk. Enterprise infrastructure software provides commoncapabilities needed to support Enterprise Software systems. Examplesinclude Databases, Email servers, and Network and Security Management.Information worker software addresses the needs of individuals to createand manage information, often for individual projects within adepartment, in contrast to enterprise management. Examples include timemanagement, resource management, documentation tools, analytical, andcollaborative. Word processors, spreadsheets, email and blog clients,personal information system, and individual media editors may aid inmultiple information worker tasks. Content access software is softwarethat is used primarily to access content without editing, but mayinclude software that allows for content editing. Such softwareaddresses the needs of individuals and groups to consume digitalentertainment and published digital content. Examples include MediaPlayers, Web Browsers and Help browsers. Educational software is relatedto content access software, but has the content and/or features adaptedfor use in by educators. For example, it may track progress throughmaterial or include collaborative capabilities. Simulation software arefor simulation of physical or abstract systems for either research,training or other purposes. Media development software addresses theneeds of individuals who generate print and electronic media for othersto consume, most often in a commercial or educational setting. Thisincludes Graphic Art software, Desktop Publishing software, MultimediaDevelopment software, HTML editors, Digital Animation editors, DigitalAudio and Video composition, and many others. 3D computer graphicssoftware refers to programs that are used to create 3Dcomputer-generated test, imagery, symbols and/or the like. 3D modelerstypically allow users to create and alter models via their 3D mesh.Users can generally add, subtract, stretch and/or otherwise change themesh to their desire, and models can be viewed from a variety of angles,usually simultaneously, and rotated, with the view being capable ofbeing zoomed in and out. Product engineering software is used indeveloping hardware and software products. This includes computer aideddesign (CAD), computer aided engineering (CAE), computer languageediting and compiling tools, Integrated Development Environments, andApplication Programmer Interfaces. Additional information about softwareapplications is present in Paul E. Ceruzzi, A History of ModernComputing (MIT Press., 1998) and Kelly Martin Campbell, Computer: AHistory of the Information Machine, (Basic Books, 1996).

The phrase “source code” (commonly just “source” or “code”) as is usedherein means any collection of statements, declarations and/orinstructions written in some human-readable computer programminglanguage. Such programming languages are well known by those havingordinary skill in the art and include, but are not limited to, C#, C++,Java and other programming languages that are described herein (orotherwise). Source code is the mechanism that is typically most oftenused by programmers to specify the actions to be performed by acomputer. The source code which constitutes a program is usually held inone or a plurality of text files (ending in .txt), or other files, forexample, C# files (ending in .cs), sometimes stored in databases asstored procedures, and may also appear as code snippets printed in booksand/or other media. A large collection of source code files may beorganized into a directory tree, in which case it may also be known as asource tree. A computer program's source code is often the collection offiles that is typically needed to convert from human-readable form tosome kind of computer-executable form. The source code may be convertedinto an executable file by a compiler, or executed on the fly from thehuman readable form with the aid of an interpreter, or the like.

The term “spreadsheet” as is used herein means a paper, document, reportand/or the like that serves a variety of purposes, most commonly that ofholding and/or storing data and/or information. Commonly used in thebusiness and scientific fields, a spreadsheet can be set up in a myriadof ways using rows, columns, headings and/or the like, and may includeone or a plurality of price and/or “green” statements, indicationsand/or items of data and/or information, and is a type of a priceschedule and/or “green” schedule. A spreadsheet typically providesstructure and/or organization for data and/or information, and oftenmakes calculations. Microsoft Excel is currently likely the mostcommonly used computer software for creating spreadsheets.

The term “statement” as is used herein means one or more generic ormanufacturer/distributor/other specific words, symbols, numbers,letters, indications and/or the like, with or without punctuation(periods, commas, colons, semi colons, question marks, explanationpoints, and/or the like), such as the symbols @, #, $, %, ^, &, *, (, ),_, +, =, {, }, [, ], ″, ′, <, > and/or the like, or any combinationthereof, and is a type of information and data. For example, thestatement may simply be the letter “G” (representing that a particularparametric symbol, and corresponding construction plan (or other)element, is “green”). As another example, the statement may be the twoletters “NG” (representing that a particular parametric symbol, andcorresponding plan construction element, is not “green”). Further, theabsence of a statement for a particular parametric symbol, andcorresponding plan construction element, may be used to represent thatthe particular parametric symbol, and corresponding plan constructionelement, is not “green.” A wide variety of statements may be createdand/or used, as may readily be determined by those having ordinary skillin the art.

The phrase “Static Product Cart Technology” as used herein means a“standard” (traditional) “off the shelf” type of shopping carttechnology that can be purchased commercially, and that does not haveany intelligence. It is typically used by a wide variety of known andunknown product manufacturers, such as Circuit City and Best Buy, forselling standard products. “Static Cart Product” technology does not usezip codes, a software design tool or a plug-in (add-on) computersoftware code, and does not have parametric symbols inserted into aconstruction plan. Further, it cannot create a price schedule from pricequotes.

The phrases “storage medium” and “physical storage medium” as are usedherein mean any technology, device, material or product that is used toplace, keep and/or retrieve data and/or information, for example, a harddrive, thumb drive, tape drive, CD, DVD and/or the like. A medium is anelement used in communicating a message. On a storage medium, typicallythe messages are in the form of data, and are suspended for use whenneeded.

The terms “subroutine” and “subprogram” as are used herein mean aportion of computer software code within a larger computer program,which generally performs a specific task, and is relatively independentof the remaining code. A subroutine generally behaves in much the sameway as a computer program that is used as one step in a larger programor another subprogram. It is often coded so that it can be started(“called”) several times and/or from several places during a singleexecution of the program, including from other subroutines, and thenbranch back (return) to the next instruction after the “call” once thesubroutine's task is complete. Subroutines are a programming tool, andthe syntax of many programming languages includes support for writingand using them. Judicious use of subroutines (for example, through thestructured programming approach) often substantially reduces the cost ofdeveloping and maintaining a large program, while increasing its qualityand reliability. Subroutines, often collected into libraries, are animportant mechanism for sharing and trading software.

The term “substantially” as is used herein means almost or in anextensive, considerable, or ample way, and may be determined by thosehaving ordinary skill in the art.

The term “suitable” as is used herein means satisfactory, operable orcapable of producing a desired result.

The phrase “symbol palette” or “palette” as is used herein means adialog box that has some or all of the options that a user can choosefor a particular object or construction plan (or other) element. (See,for example, FIGS. 10-13.).

The phrases “system logger” and “logger” as are used herein mean adevice or system that allows a separation of a computer software thatgenerates messages from the system that stores them and/or the softwarethat reports and/or analyzes them. It also generally provides devices,which would otherwise be unable to communicate, a means to notifyadministrators of problems or performance. A Syslog (system logger) canbe used for computer system management and security auditing, as well asgeneralized informational, analysis and debugging messages. It istypically supported by a wide variety of devices, such as printers androuters, and receivers across multiple platforms, which devices are wellknown by those having ordinary skill in the art. Because of this, asyslog can be used to integrate log data from many different types ofsystems into a central repository.

The phrase “system software” as is used herein means software that isinvolved in integrating a computer's various capabilities, but typicallydoes not directly apply them in the performance of tasks that benefit auser, such as an operating system.

The phrase “Take Off” as is used herein is a term that is often used inthe engineering and construction industries, and refers to a list of oneor a plurality of materials with one or a plurality of corresponding (orother) quantities and/or types that are required or desired to build,manufacture and/or otherwise produce one or more designed (or other)structures or items. This list is typically generated by an analysis ofa blueprint and/or other design document, may include one or a pluralityof price and/or other statements, indications and/or items of dataand/or information, and is a type of a price and/or other schedule.

The phrase “Tao Framework” as is used herein means a C# library giving.NET and Mono developers (and others) access to popular graphics and/orgaming libraries, like OpenGL and SDL. It was originally developed bythe C# OpenGL programmer, and since its start many developers havecontributed to the project. The latest version of Tao is version 2.1released on May 1, 2008. Additional information about Tao Framework ispresent on its web site.

The phrase “text” as is used herein mean letters, numbers, symbols (plussigns, minus signs and/or the like), words, instructions, directionsand/or the like.

The phrases “three-dimensional” and “3D” as are used herein mean havingthree or more dimensions. Three-dimensional objects generally have, orappear to have, extension in depth, and have height, width and depth.

The phrases “two-dimensional” and “2D” as are used herein mean havingtwo dimensions. Two-dimensional objects generally do not have, or appearto have, extension in depth, and have height and width, but not depth.

The term “update” as is used herein in connection with a database,physical storage medium and/or the like means changing, typically usingmore current data and/or information, one or more database records(deleting, adding and/or otherwise editing or changing such records),which may be performed periodically at any required or desired period oftime including, but not limited, to hourly, daily, bi-weekly, weekly,bi-monthly, monthly, bi-annually, annually and/or the like, or upondemand (i.e., at any time and/or date).

The phrases “virtual private network” and “VPN” as are used herein meana computer network that typically is layered on top of an underlyingcomputer network. The generally private nature of a VPN means that thedata travelling over the VPN is not generally visible to, or isencapsulated from, the underlying network traffic. Similarly, thetraffic within the VPN generally appears to the underlying network asjust another traffic stream to be passed. The term VPN can be used todescribe many different network configurations and protocols, which areknown by those having ordinary skill in the art.

The term “viewer” as is used herein means a program that generallydisplays the contents of an electronic (digital) file. Viewers maygenerally be stand-alone programs or components within a larger program.They are widely used to display images downloaded from online and otherservices and from the Internet. Viewers for sound and video files arealso available. A viewer typically displays or plays one type of file,whereas a file viewer is a program that typically supports manydifferent formats.

The phrases “video card” and “video adaptor” as are used herein mean adisplay adapter, such as a printed circuit or other board that plugs (ormay otherwise be inserted) into a computer to generate images for acomputer's screen (i.e., to give it display capabilities). Manydifferent types of video adapters are available for computers, most ofwhich conform to one of the video standards defined by IBM or VESA. Eachadapter usually offers several different video modes, such as textand/or graphics. In text mode, a monitor can generally display onlyASCII characters, whereas in a graphics mode, a monitor can generallydisplay any bit-mapped image. Modern video adapters contain memory, sothat the computer's RAM is not used for storing displays. In addition,most adapters have their own graphics coprocessor for performinggraphics calculations.

The phrase “video signals” as is used herein in connection with text,images, symbols and/or the like mean the data and/or informationdefinition of the text, images or symbols, or a combination thereof,including, for example, color, hue, saturation, and all other visualcharacteristics of the text, images, symbols, or a combination thereof,as well as the data that describes the physical characteristics of thetext, images, symbols, or a combination thereof, such as size, shape,location and/or the like. This data is typically in a format that isunderstandable by computer monitor(s) and/or optical projector(s), sothat the computer monitor(s) and/or optical projector(s) can display it.

The phrases “Visual Studio” and “VS” as are used herein refer to a suiteof programming languages and development tools that are designed to helpsoftware developers create innovative, next-generation applications, andare commercially available from known sources, for example, fromMicrosoft Corporation. This language product includes, for example,Visual Basic, Visual C++, Visual C#, Visual FoxPro, Visual J++ andVisual InterDev. The Visual Studio development system is a comprehensivesuite of tools. Its features may include: (i) leveraging of localstorage and local resources, such as peripherals, for high-performanceand occasionally-connected applications; (ii) through LINQ, performingquery, set, and transform operations using familiar object-orientedlanguages, such as Visual C# and Visual Basic; (iii) creating clientapplications that utilize Web services or offline tools that arecomplementary to Web-based applications; (iv) providing, via a .NETFramework, a wide variety of pre-built services that aid a computeroperator in working more efficiently; (v) enhancing efficiency byproviding inline code guidance right in the editor (without paging backand forth to documentation); (vi) collaborating more effectively andefficiently with designers through integration between Visual Studio andMicrosoft Expression; and (vi) using integrated debugging and staticcode analysis to improve quality early and often.

The abbreviation “VSTO” as is used herein refers to Visual Studio Toolsfor Office, which are commercially available from Microsoft Corporation.

The phrases “WAN” and “wide area network” as are used herein mean acomputer network that typically covers a broad area, such as a networkhaving communication links that cross metropolitan, regional, ornational boundaries. This is typically in contrast with personal areanetworks (PANs), local area networks (LANs), campus area networks (CANs)and Metropolitan area networks (MANs), which are usually limited to aroom, a building, a campus or a specific metropolitan area, such as acity, respectively.

The terms “web” and “World Wide Web” as are used herein mean a system ofInternet servers that generally support specially formatted documents.The documents are generally formatted in a markup language (HTML orHyperText Markup Language) that supports links to other documents, aswell as graphics, audio and/or video files. Generally, one may move fromone document to another by clicking on hot spots. Not all Internetservers are part of the World Wide Web, and there are severalapplications (Web browsers) that make it easy to access the World WideWeb, two of which are Netscape Navigator and Microsoft Corporation'sInternet Explorer.

The phrase “wireless USB adaptor” as is used herein means a networkadapter (a network or communications controller) that typically plugsinto a computer via a USB (or other) port.

Additional information regarding computers, software, applications andprogramming, and related definitions, are present in Deborah Russell etal., Computer Science Basics (O'Reilly, ISBN 0937175714).

General Description

The present invention is directed to an automated pricing system inwhich a price schedule for a construction product, such as a window, isoptionally, but typically, generated and inserted directly into a set ofconstruction project (or other architectural, civil, industrial orother) plans. For example, in a preferred embodiment, the constructionproduct can be a construction material, such as a window, an acrylicglass block, a door, a skylight and/or the like, and is inset into theconstruction plans. Of course, it is to be understood that any number ofproduct types can be employed, and any other different symbols can beemployed in a different embodiment other than construction materials,without departing from the present invention. The description thatfollows, with particular applicability to construction materials, shouldbe regarded as exemplary and not limiting.

The present invention is preferably implemented using a plug-in (oradd-on) computer software code component that has an ability to workwithin, or outside of, an architectural CAD (Computer Aided Design)software product, or other software design tool, and with an online1stPricing, 1stWindows or similar database, or with an offline database.While most of the discussion that is set forth herein refers to the1stPricing online web site or database, the 1stWindows online web siteor database, or a similar web site or database, or a database that isnot on-line, may also be employed. Each construction plan (or other)element selected by a user, such as a window, an acrylic glass block, adoor and/or a skylight, is optionally, but preferably, inset into thebuilding (or other) plans via one or more selected parametric symbolsthat are optionally, but preferably, present in the plug-in (add-on)computer software code. Alternatively or additionally, parametricsymbols may be present in a software design tool (i.e., alreadyexisting), or may not be present at all, as is discussed hereinbelow.Each parametric symbol optionally, but preferably, adds a combinedtwo-dimensional and/or three-dimensional representation of theassociated (corresponding) construction product to the constructionplans.

Very advantageously, a cost value (final price) can be calculated by anonline 1stPricing or similar database, or offline database, or usingsome other database or web site, for one or a plurality of, or each,selected construction plan (or other) element (and/or parametricsymbol), which may optionally advantageously include a price comparisonfor one or a plurality of, or each, selected construction productbetween different available manufacturers, distributors and/or otherentities, individuals, systems and/or devices within a selected zipcode, or nationally (i.e., not within any one or more particular zipcodes, but within the country, state or other geographic region or area)in order that a user may optionally procure “the” best or mostcompetitive price for one or a plurality of, or each, selectedconstruction product, and a total (final) cost can then optionally butvery advantageously automatically and virtually instantaneously becalculated by the same database (typically within from about 5 to about15 seconds) for an entire set of construction elements (all of theselected parametric symbols). Other types of prices, such as an“average” price/cost or a “general” price/cost (or any other type of aprice/cost) for a construction plan (or other) element or parametricsymbol, or both, in a particular geographic region or area, ornationally, and/or the like, may additionally or alternatively beprocured by a user. The systems and methods of the present inventionwork using any type and/or source of pricing (and/or “green”) databases,regardless of the source of the databases, and regardless of the type ofprice and/or “green” information desired, required or procured.Advantageously, a price schedule that includes the foregoing costs canthen optionally automatically, manually or otherwise, and virtuallyinstantaneously be created (typically within about 1 to about 13seconds) by the online 1stPricing database (or a different database),and then the price schedule advantageously can optionally, butpreferably, be inset directly into the building (or other) plans by theplug-in (add-on) computer software code, so that the building plansthemselves advantageously can optionally include one or a plurality of,or each, selected parametric symbol and/or construction plan (or other)element, as well as a final price schedule for all such parametricsymbols and/or construction plan (or other) elements. The price scheduleadvantageously may contain a detailed list of the selected constructionproducts with attached corresponding pricing to provide a total costvalue therefore. The price schedule can also optionally be exported as astandalone object in the form of various common computer applications orformats including, but not limited to, Excel, Word, Plain Text, HTML,XML, PDF and the like. Pricing may optionally be determined via anIntranet, an Internet or other connection between the architectural,civil or industrial plan drawer's local and/or remote, host, client-sideand/or other computer system and/or console and one or a plurality ofdatabase(s) maintained locally, for example, on a physical storagemedium, or on a remote system, such as the online 1stPricing database.Product data and/or information (product characteristics and/orfeatures) passes from the plan drawer's local or remote computer(s) orconsole(s) to the database(s), and pricing data and/or information (and,optionally, information as to whether or not selected construction planelements are “green”) then passes back to the plan drawer's local orremote computer(s) and/or consoles and optionally, but preferably,becomes embedded within the construction (or other) plans. The systemmay be implemented, for example, over an Intranet, the Internet, on anetwork, such as a LAN, a WAN, a MAN, a CAN, a SAN, a VPN and/or thelike, using a physical storage medium (any device that is capable ofrecording and/or storing data and/or information), such as a CD, a DVD,a hard drive, a thumb drive, a tape drive and/or the like, and/or thelike.

The systems and methods of the invention often include the actions ofdragging one or more construction plan (or other) elements and/orparametric symbols from one location to another on a computer, console,other display screen, server and/or the like, dropping them into adesired position or location therein or thereon, as is required ordesired, and may readily be performed by those having ordinary skill inthe art, pinging one or a plurality of databases and transmitting,bringing or sending back pricing and/or other information therefrom tothe computer, console, other display screen, server, and/or the like.Although various databases and web sites are discussed herein, any oneor more databases that include pricing and/or other information and/ordata, that can be employed to purchase one or a plurality ofconstruction plan (or other) elements and/or parametric symbols, and/orthat can otherwise function in the manner described herein, and/or thelike, can be employed by a user, and may be accessed automatically,manually and/or otherwise. For example, once desired characteristics ofa particular construction plan (or other) element and/or parametricsymbol have been determined and/or selected, such as a window having aparticular height, width, color, material, type of glass and/or thelike, a user can perform a search on a search engine, such as Google,Yahoo and/or the like, to locate particular web sites of manufacturers,distributors and/or others that sell, market, distribute and/orotherwise provide such construction plan (or other) elements to thepublic or others, and manually purchase the same from them.

The basic steps of one practical implementation of the present inventionare laid out herewith. Detailed explanations and step-by-step processesof various preferred embodiments within the present invention (includingpreferred elements, steps, limitations and the like) are set forth indetail in associated sections hereinbelow. These preferred embodimentsof the present invention (and preferred elements, steps, limitationsand/or the like) are capable of a wide variation, as is discussed hereinor as may readily be determined by those having ordinary skill in theart. All such variations are included in the systems and methods of thepresent invention.

Computers

The systems and methods of the present invention typically include oneor a plurality of local and/or remote computers and/or consoles (ordevices that function similarly thereto), often operably connected witheach other and/or with other devices that are described herein, whichfunction in the manners that are dictated by system software installedtherein, as is discussed herein. There is generally no limit to thenumber of computers and consoles that may be employed in these systemsand methods.

Any type and/or brand of computer or console that has an ability toperform the functions that are described herein, from any source, andwhether present in or out of a computer network, or used with or withoutthe Internet or the World Wide Web, may be employed in the systems andmethods of the invention. Examples of computers that may be employedinclude, but are not limited to, personal computers, business computers,desktop computers, laptop computers, notebook computers, personaldigital assistants and other hand-held computers, pocket computers,general purpose computers, special purpose computers, and the like, suchas those that are sold by Dell, Inc. (Round Rock, Tex.) at its web siteor at 1-800-www-dell, Apple Computer, Inc. (Cupertino, Calif.) at itsweb site or 1-800-my-apple, Hewlett Packard Company (Palo Alto, Calif.)at its web site or 1-800-buy-myhp and/or similar companies.

The computers and/or consoles that are employed in the systems andmethods of the invention preferably include one or a plurality of meansfor enabling a user to view graphics and/or video, on a computer and/ordisplay screen, such as an internal or external graphics card, orsimilar device.

As is known by those having ordinary skill in the art, a computernetwork can be a public network, and typically includes a centralprocessing unit (CPU) or processor that executes the individual demandsof a computer program, that has an ability to add, subtract, multiplyand/or divide a multitude of numbers, and is connected to a systemmemory, which typically contains an operating system, a hard drive (forstoring data), RAM (a chip that holds data), one or more applicationprograms, one or more input devices (permitting a user to interact withthe computer), such as a mouse or a keyboard, one or more output devices(also permitting a user to interact with a computer), such as a printer,a display monitor, and a communications interface, such as an Ethernetcard, to communicate to an electronic network, for example, via a WideArea Network (WAN), as an inter-network, such as the Internet, orotherwise. Many other similar configurations are known by those havingordinary skill in the art, and it is contemplated that all of theseconfigurations could be used in the systems and methods of the presentinvention. Furthermore, using the information that is provided herein,it is within the abilities of those having ordinary skill in the art toprogram and configure a computer system to implement one or more of thesteps of the present invention, as are discussed herein. Moreover, thepresent invention contemplates providing computer readable data storagemeans with program code recorded thereon for implementing the methodsteps that are described herein.

A wide variety of computer accessories may be employed with thecomputers that may be used in the systems and methods of the invention.Such accessories include, but are not limited to, computer drives (harddrives, thumb drives, tape drives, DVD media drives, CD media drivesand/or other drives), monitors, screens, mice, keyboards, batteries,printers, storage units, docking stations, USB (and other) ports andcords, memories, memory upgrade kits, modems, wireless (and other)adaptors, routers, cables, remote controls, surge protectors, powersupplies, servers, mounts, stands, speakers, headsets, headphones, webcams, DVD and CD media and media cases, carrying cases, and/or the like.These and other computer accessories are commercially available fromsources that are known by those having ordinary skill in the art, suchas Dell, Inc. (Round Rock, Tex.), Apple Computer, Inc. (Cupertino,Calif.), Hewlett Packard Company (Palo Alto, Calif.) and similarcomputer supply companies.

Computer systems can be configured to receive inputs from a user, suchas a query as to whether an action has been performed, and output thestatus or lack of status of the action. Still other embodiments could beconfigured to output reminders, form schedules based on actionsassociated with the present invention, and the like, to assist in thepractice of the invention and/or to manage the practice of theinvention.

Embodiments within the scope of the present invention include programproducts on computer-readable media, and carriers for carrying or havingcomputer-executable instructions or data structures stored thereon. Suchcomputer-readable media can be any available media which can be accessedby a general purpose or special purpose computer, for example, RAM, ROM,EPROM, EEPROM, CD-ROM or other optical disk storage, magnetic diskstorage or other magnetic storage devices, or any other medium which canbe used to carry and/or store desired program code in the form ofcomputer-executable instructions or data structures, and which can beaccessed by a general purpose, special purpose or other computer. Wheninformation is transferred or provided over a network or anothercommunications connection (generally hardwired, wireless, or acombination of hardwired or wireless) to a computer, the computergenerally properly views the connection as a computer-readable medium.Thus, any such connection is properly termed a computer-readable medium.Computer-executable instructions comprise, for example, instructions anddata which cause a general purpose computer, special purpose computer,or special purpose processing device to perform a certain function orgroup of functions.

The present invention is described in the general context of methodsteps which may be implemented in one embodiment by a program productincluding computer-executable instructions, such as program modules,executed by computers in networked environments. Generally, programmodules include routines, programs, objects, components, datastructures, and the like, that perform particular tasks or implementparticular abstract data types. Computer-executable instructions,associated data structures, and program modules represent examples ofprogram code for executing steps of the methods disclosed herein. Theparticular sequence of such executable instructions or associated datastructures represent examples of corresponding acts for implementing thefunctions described in such steps.

The present invention is suitable for being operated in a networkedenvironment using logical connections to one or more remote computershaving processors. Logical connections may include a local area network(LAN), a wide area network (WAN) and the like. Other computer networksthat may be employed, for example, are discussed herein. Such networkingenvironments are commonplace in office-wide or enterprise-wide computernetworks, intranets and the Internet. Such network computingenvironments typically encompass many types of computer systemconfigurations, including personal computers, hand-held devices,multi-processor systems, microprocessor-based or programmable consumerelectronics, network PCs, minicomputers, mainframe computers and/or thelike. The present invention may also be practiced in distributedcomputing environments where tasks are performed by local and remoteprocessing devices that are linked (by hardwired links, wireless links,by a combination of hardwired or wireless links and/or otherwise)through a communications network. In a distributed computingenvironment, program modules may be located in both local and remotememory storage devices.

The order of the steps that are described herein may generally bevaried, and two or more steps may generally be performed separately,concurrently and/or with partial concurrence. Such variation will dependupon the software and/or hardware systems chosen and on designer choice.All such variations are within the scope of the present invention. Also,software and web implementations of the present invention could beaccomplished with standard programming techniques with rule based logicand other logic to accomplish the various steps thereof.

The computers that are employed in the systems and methods of theinvention are optionally, but preferably, connected with a means forcontrolling the movement of a cursor or pointer on a display screen,such as a mechanical, optomechanical or optical mouse and its connectingwire, which may be connected to the computer in a variety of manners,such as via a an RS-232C serial port or a PS/2 port., or may becordless, and rely on infrared or radio waves to communicate with thecomputer. They optionally, but preferably, are also connected with ameans for displaying data, information and/or graphics, such as adisplay screen or monitor, and a means for entering or inputting datainto the computers, such as an internal or external keyboard, andinclude one or more means for connecting them with one or more monitors,such as a video port, graphics port, VGA port or other socket on theback (or other portion) of a computer that is used to connect a monitor.The computer is also preferably connected with one or a plurality ofinternal or external means for permitting data to be exchanged betweenthe computer's components and one or more peripherals, such as cables orcords, for example, power cables (for electrically or otherwise poweringthe computer), VGA or DVI video cables (for transferring video signalsbetween devices, such as a monitor and a computer), IDE and SATA cables(for transferring data between a computer's internal components and themotherboard), USB and Firewall cables (for permitting peripherals toconnect to a computer and transfer data, generally at high speeds),Ethernet cables (for joining two network devices, and permitting data tobe transferred, generally at high speeds between the devices in the formof a series of electrical pulses), and the like.

The one or plurality of computers or consoles may be operably connectedwith one or a plurality of other computers, consoles and/or devices thatare being, or may be, employed in the systems and methods of theinvention with, for example, video cables.

Additional information regarding computers, consoles and computing ispresent in the following books, each of which is hereby incorporatedherein in its entirety by reference: (i) Douglas E. Corner, ComputerNetworks and Internets with Internet Applications (5th Edition, PrenticeHall, 2008); (ii) M. Morris Mano and Charles Kime, Logic and DesignComputer Fundamentals (4th Edition, Prentice Hall, 2003); (iii) RandalE. Bryant and David R. O'Hallaron, Computer Systems: A Programmer'sPerspective (Prentice Hall, 2002); (iv) William Stallings, Data andComputer Communications (8th Edition, Prentice Hall, 2008); (v) HaroldAbelson, Gerald Jay Sussman and Julie Sussman, Structure andInterpretation of Computer Programs, (2nd Edition, McGraw-Hill, 1996);(vi) J. Stanley Warford, Computer Systems (4th Edition, Jones & BartlettPub, 2009); and (vii) John Lewis et al., Java Software Solutions, (2ndEdition, Pearson Education, Inc., 2007, ISBN 0-13-222251-5).

Display Screens

The systems and methods of the invention generally include one or aplurality of means for displaying data, information and/or graphics,such as a computer's user interface and open programs, allowing the userto interact with the computer, and the data, information and/or graphicsappearing thereon, for example, display screens that are internal and/orexternal to the computer(s) being employed. Any type and/or brand ofsuch means that has an ability to perform the functions that aredescribed herein, from any source, may be employed in the systems andmethods of the invention.

Cables

The systems and methods of the invention preferably include one or aplurality of means for transferring information, data, graphics and/orthe like between computers, consoles, optical projectors, monitors,keyboards, mouse(s), printers, drives, adaptors and/or otherperipherals, such as cables, cords or the like, for supplying electrical(or other) power to the foregoing devices, and/or for performing similaror other functions, which means are commercially available from sourcesthat are known by those having ordinary skill in the art. Using thedetailed information that is provided herein, those having ordinaryskill in the art may readily determine which type, and the number andsuitable length, of such means that should be used for a particularproject, and would know how to connect such means between the foregoingand/or other devices. Power cables (typically one per computer, consoleor monitor) are usually supplied with computers, consoles and/ormonitors (Dell Inc.), and video cables (typically one per monitor) areusually supplied with monitors (Dell Inc.).

Computer Mountings

The systems and methods of the invention optionally may include one or aplurality of movable or non-movable mountings, stands, tables and/or thelike for the computers (or similar devices) and/or peripherals(keyboard, mouse, monitors and/or the like), which function to providesupport therefore, and a place for them to rest at a position, heightand/or location that renders them convenient for a user to use.

Computer Software

The computers and consoles that may be included or employed in thesystems and methods of the invention include one or a plurality ofcomputer software programs, which function in the manner that isdescribed herein, and which may be procured from sources that are knownby those having ordinary skill in the art, such as 1st Windows and/or1st Pricing for the plug-in computer software, and/or written bycomputer programmers having ordinary skill in the art using theinformation and illustrations that are described, and provided, hereinin great detail.

When writing a computer program, a programmer typically tries to solve aparticular problem by, for example, understanding the problem, breakingthe problem into manageable units, designing a solution, consideringalternatives to the solution, refining the solution, implementing thesolution (by writing a program in the form of code), and testing thesolution, fixing any problems. When developing software, separate piecesare generally designed that are responsible for different parts of thesolution, and then are subsequently put together. A program is writtenin a particular programming language, such as Java (an object-orientedprogramming language in which objects are the basic pieces that make upa program), Ada, C++, C#, Pascal or Smithtalk, which typically employspecific words and symbols to express the problem solution. Differentprogramming languages define different sets of rules that determineexactly how a programmer can combine the words and symbols of thelanguage into programming statements (instructions that are carried outwhen a program is executed).

Four general categories of programming languages currently exist, andinclude machine language, assembly language, high-level languages andfourth-generation languages. In order for a particular program to run ona computer, the program must generally be in the computer's machinelanguage. Each type of a CPU typically has its own machine language.Because machine language code is expressed as a series of binary digits,such code is difficult for human beings to read and write. Whileassembly language, which employs relatively short words that representcommands or data, is significantly easier for programmers to use, aprogram in this language generally cannot be executed directly on acomputer. It generally first needs to be translated into machinelanguage. Most programmers employ high-level language, such as Java,Ada, C++, C# and Smithtalk, to write software, which employs phrases,and is relatively easy for programmers to read and write, but must alsogenerally be translated into machine language before it can be executed,for example, using a commercially-available compiler and/or interpreter.A wide variety of commercially-available Software Development Kits(SDKs) are often used by programmers to develop software, such as theJava Software Development Kit, which includes a compiler, aninterpreter, and several other software tools that may be useful for aprogrammer, and may be downloaded at no cost from the Sun Microsoft website. In addition, Integrated Development Environments (IDEs), programsthat combine an editor, compiler and other Java support tools, may beused by programmers to support a development of Java programs. One ofthese programs, known as NetBeans, incorporates the development toolsprovided by Java Software Development Kits, into one convenientGUI-based program, and may be downloaded at no cost from the NetBeansweb site. A similar Integrated Development Environment (IDEs) that iscalled Eclipse, and is promoted by IBM, may be downloaded at no costfrom its web site.

A wide variety of computer software programs and operating systems thatmay be employed in the systems and methods of the invention arecommercially available from sources that are know by those havingordinary skill in the art, such as Microsoft Corporation (Redmond,Wash.), Dell, Inc. (Round Rock, Tex.), Apple Computer, Inc. (Cupertino,Calif.), Hewlett Packard Company (Palo Alto, Calif.), 1st Windows, 1stPricing, and similar computer software supply (or other) companies,and/or may be written by computer programmers having ordinary skill inthe art. The present in invention is not limited to any particular type,number or version of computer software programs or operating systems, orto any particular manufacturer or distributor of computer software oroperating system. As is well known by those having ordinary skill in theart, more than one computer software program, or version thereof, andoften a wide variety of computer software programs, and versionsthereof, or combined software programs, may be used to perform the samefunction on, or in connection with, a computer. Also, computer softwareprograms that may retain the same function are often routinely orcontinuously updated or enhanced, sometimes with the use of “plug-in” or“add-in” computer code and/or with other enhancements, additions,deletions and/or substitutions to existing code. Thus, any type andnumber of computer software programs and/or operating systems may beemployed in the systems and methods of the present invention, as long asthey have an ability to perform the functions that are described herein,and such computer software and operating system may be procured from anyknown (or other) computer software manufacturer or distributor or storeor generated by a computer programmer having ordinary skill in the art.Further, additional computer programs may be employed in the systems andmethods of the invention, as long as they are compatible with computerprograms that are required for the invention to properly operate, whichmay readily be determined by those having ordinary skill in the art.

There are several general categories of computer software that may beemployed in the systems and methods of the invention. Programmingsoftware generally come in forms of tools that assist a programmer inwriting computer programs (sets of logical instructions that make acomputer system perform certain tasks). The tools that help theprogrammers in instructing a computer system include text editors,compilers and interpreters. System software helps in running thecomputer hardware and the computer system, and is a collection ofoperating systems; devise drivers, servers, windowing systems and/orutilities. System software helps an application programmer inabstracting away from hardware, memory and other internal complexitiesof a computer. Application software enables the end users to accomplishcertain specific tasks. Business software, databases and educationalsoftware are some forms of application software. Different wordprocessors, which are dedicated for specialized tasks to be performed bythe user, are other examples of application software. Utility softwarehelps in the management of computer hardware and application software,and performs a relatively small range of tasks, such as diskdefragmenters, systems utilities and virus scanners. Data backup andrecovery software provides functionalities beyond simple copying of datafiles. This software often supports user needs of specifying what is tobe backed up and when. Backup and recovery software generally preservethe original organization of files, and allow an easy retrieval of thebacked up data. Installation software functions to prepare anapplication (software package) to run in a computer. Typically combinedwith the application it is installing, the install program creates afolder with a default name on the hard disk and copies the applicationfiles to that folder. The complete installation package is generallyeither an Internet download or on a CD-ROM, DVD-ROM or a diskette.Application files are generally compressed in the package, and theinstall program decompresses them into their original format andrespective folders. With Windows applications, the install program oftenadds or updates extensions to Windows that reside in the Windows folder.It is also customary for the install program to deposit an uninstalloption so the application can be easily removed later on. Installprograms may also be used to attach a new peripheral device to acomputer. The install program may add the device's driver to theoperating system, or it may be used to set or reset parameters in anupdatable memory (flash memory, EEPROM, etc.) on the expansion boardthat has been plugged in. Security software provides some measure ofsecurity from attack to a an individual computer, or a computer thatforms part of a network, and the data present therein. Document displaysoftware functions to display text documents on a display screen, sothat they can be read and/or modified. Networking software, such asMicrosoft Outlook and Internet Explorer, function to permitcommunication over a network via email, Internet and/or the like, and/orallow a user to perform network maintenance, troubleshooting and/orsetup. Computer configuration software functions to configure a computerfor usage, for example, setting up graphics cards, performingmaintenance, such as cleanup and/or error detection on hard drives,and/or to install, configure and/or uninstall other hardware componentson the computer. Database software development software functions tocreate, maintain and/or query databases that can be used as standalonedatabases and/or have them incorporated into one or more other softwareprograms. Software development software functions to permit a user towrite one or more software programs that will run (execute) on one or aplurality of different software programs.

In order for the systems and methods of the invention to work, inaddition to the computer hardware and peripheral devices discussedherein, there must be a specialized add-on (plug-in) computer softwarecode (program) written specifically for this purpose (or otherwiseprocured), which may run either internally within the software designprogram or externally (outside of the software design tool), operatingin the latter as a dynamic link library, executable (.exe), ActiveX, COMobject, or combination thereof, and/or the like. This code typically isto be compiled from the source code into an executable code to be run onone or a plurality of local or remote computers using the computeroperating system for which it is compiled.

The systems and methods of the invention use data and/or properties thatare optionally, but preferably, attached to one or more parametricsymbols via the add-on (plug-in) computer code, permitting suchparametric symbols, which may be present in the add-on computer code, inthe software design tool, or otherwise, to be recognized when sent orotherwise transmitted by a user from one or more local or remotecomputers to one or more local or remote (or other) databases. Extremelyadvantageously, such add-on computer code, databases, systems andmethods may generally be employed by a user in a wide variety ofdifferent manners in a wide variety of different scenarios, including,but not limited to, the following, and any combination thereof:

Software Design Tool Manufacturer or Software Scenario DistributorDesign Tool Database A Multiple Multiple Multiple B One MultipleMultiple C One One Multiple D One One Multiple E One One One F OneMultiple One G Multiple Multiple One H Multiple One One I Multiple OneMultiple

In scenario A above, for example, one add-on computer code can be usedin connection multiple different CAD (or other software design tool)manufacturers, distributors and/or other individuals or entities, andwith a wide variety of different CAD (or other software design tool)products manufactured, distributed and/or otherwise provided bydifferent companies, including, but not limited to, Autodesk Revit,Autodesk Architecture, ArchiCAD, Autodesk Inventor, Autodesk Civil,Vectorworks, TurboCAD, Chief Architect, SoftDesk, SoftCAD, Softplan,Microstation, SketchUp, and/or the like, via the communication modulethat is described and illustrated herein with a plurality of differentdatabases. In scenario E, for example, one specific add-on computer codemay be written for and/or employed with only one type of CAD (or othersoftware design tool) product from only one CAD (or other softwaredesign tool) manufacturer or distributor and/or only work with onespecific database. For example, in the case of a window, the window codeidentifier assigned to the window may be, for example “XO” (or any othersymbol chosen by a user), and the particular properties and/or featuresthat make up such “XO” window, such as width and height, are sent by theuser to one database, for example, as P1 width=X and P2 Height=X (orusing any other symbols chosen by the user). The system then looks for amatch in the database of “XO” with the properties of P1 and P2. When thesystem locates a similar or exact match, the system will send back fromthe database to the user's desk top, lap top or other computerinformation and/or data including, but not limited to, that regardingpricing, owners manual, warranty information, and/or the like. Thesystem is typically set up to transmit back to the user's computer anysuch information and/or alphanumeric text, which may or may not bepresent in a file (PDF file, text file, word document, text file, xml,logos and/or the like). Further, and very advantageously, there is nolimit to the number of properties, features and/or attributes that aparticular parametric symbol and/or construction plan element may have,such as one or a plurality. The system can work with items that have atleast one identifying code and no properties, one property, multipleproperties and/or the like.

When a communication module is installed as part of the plug-in computersoftware code, or as a companion component working together with theplug-in code, the software development time and programming coderequired to make the CAD (or other software design tool) softwarefunctional is typically reduced. Each software design tool vendor, andvendor version, can require different computer programming languages(C++, C#.net, VB.net, VBA, Assembler or the like), and differentactivation methods (merge modules, activeX, COM or the like) to allowcommunication with the database(s), either locally installed on thecomputer or remotely installed or occurring across the Intranet and/orInternet. As the database(s) of objects grows, changes and/or is updatedor otherwise modified, the existing software design tool programstypically become non-operational, produce errors, and can stopfunctioning because the protocol to communicate with the database(s)must generally change. Very advantageously, the communication moduledescribed herein solves these problems by providing a simple interface,and concise method for the software design program to send data and/orinformation to the database(s), and/or to receive data and/orinformation from the database(s), all without having to be reprogrammedor updated. Very advantageously, the communication module translates theobject attribute data into a protocol that the database(s), whetherlocally installed or remotely installed, can understand. As the protocolbetween the database(s) changes, the communication module can be updatedand not cause any problems (errors, stop functioning, becomenon-operational and/or the like), with the existing CAD (or othersoftware design tool) objects, and software programming.

One example of the above is a scenario in which a CAD vendor A supportsa library of windows including window code type “XOX,” while a CADvendor B on version 12 supports a partial library of windows, whereinsome of the windows are not supported, and window code type “XOX” isexcluded. The communication module described herein supports sending allof the library of the windows, including window type “XOX. If, in thefuture, CAD vendor B on version 13 supports the window code type “XOX,”the communication module will not have to be upgraded because the windowcode type “XOX” is already supported in the communication module. Thisvery advantageously allows one common database to be used for all of thedifferent software design tool vendors, programs and versions, and suchvendors can decide to support, or not support, all of the databaseobjects in their current version, while still allowing the vendor tochange existing or future versions without having to change/upgrade thecommunication module. Changing or upgrading the communication module isaccomplished by using an installer program to remove the existingcommunications module version and installing a newer version or byincorporating the communication module in the installer that installsthe software design tool program/system on a user's computer.

The communication module preferably sits (or is otherwise positioned)between the software design tool program/system and the database(s). Thecommunication module typically receives object attribute data from thesoftware design tool program/system, receives requests to clear thecommunications module list of object data, and receives requests toprocure pricing data, statements and/or other information from thedatabase(s). When the communication module receives a request to procuresuch data and/or information, such as pricing data, from thedatabase(s), the communication module typically converts the data and/orinformation into a communication protocol that the local or remotedatabase(s) can process, and sends the data and/or information to thedatabase(s). The database(s) typically processes the request from thecommunication module, and returns the data and/or information back tothe communication module in a data return communication protocol, whichgenerally includes the original data and/or information and theadditional requested data and/or information (pricing data and/or thelike). The communication module generally processes all the data and/orinformation received from the database(s), translates the data and/orinformation into a form that the software design tool program/system canunderstand, stores the data and/or information at a location where thesoftware design tool program/system can access the data, and notifiesthe software design program/system that the data and/or information hasbeen received from the database(s). The software design toolprogram/system then generally retrieves the data and/or information fromthe communications module and stores and/or displays the data and/orinformation inside the software design program/system, typically byeither attaching the data and/or information to the software design toolobjects, creating and/or displaying an object schedule showing thepricing data and/or information, thus completing the cycle.

Very advantageously, the communication module allows multiple softwaredesign tool vendors/products/programs/versions to be supported whilemaintaining a single programming code with one or a plurality of masterdatabases, which is far superior in terms of ease, efficiency,flexibility and time to the traditional, very time-consuming andinefficient method of creating one special unique program code for eachvendor, product, program and/or version.

Additional future database objects can be supported within thecommunications module and, thus, the software design toolprogram/systems, as the communication module preferably includes aninternal “database update” feature, which allows the local and/or remotedatabase(s) to send new and/or updated data and/or information to thecommunication module and/or update it without having to uninstall theexisting communication module and install a newer, more current,communication module.

When a communication module is employed, it is preferably employed,installed and/or activated in a manner described herein to “translate”the different ways that one or more software design tool programs areset up to export data, which may readily be determined using methodsknown by those having ordinary skill in the art, and may be achievedusing a computer software download from the Internet or from a physicalstorage medium, such as a CD, DVD, hard drive, thumb drive, tape driveand/or the like to bring the add-on computer software to the softwaredesign tool. As an example, the communication module may send theattributes/properties and translates them from the various CAD (or othersoftware design tool) languages to one or a plurality of serverprotocols of height, for example, as P1 (or using any other desiredsymbol). In this instance, the communication module takes in thisattribute as P1 from the CAD software program, and subsequently changes(translates) height as P1 to height as P2 (or to some other desiredsymbol) prior to sending it to the database. Then, it sends it to thedatabase. When this is done, a “translation” occurs. For instance, everysoftware design manufacturer or distributor can speak differentlanguages, as is discussed above, or have data and/or information storedin different ways, so that the computer software design tool may speak,for example, x, y or z, and the server may speak, for example, E. Thecommunication module will take in X, and transmit the request into theserver as E. When it receives the request back, it sends X back to thesoftware design tool program. This is extremely advantageous becauseonly one data set is required to talk to all CAD (or other softwaredesign tool) platforms, and the plug-in computer code may not need tochange for every CAD platform because the communication module can makethe necessary changes or be programmed to make the changes, as isexplained above. The communication module will subsequently receiveheight as P2 back from the database along with data and/or information,and then change (translate) height as P2 to height as P1 prior tosending the height back to the CAD software to perform the routine, suchas inserting a price schedule into a plan drawing on a local computer.The advantage of the communication module, which is very significant, isthat, due to the foregoing “translation” that occurs, there is no needto have a separate database for each CAD software company, even thoughmost CAD (and other software design tool) platforms speak and send datain different ways from one another, as is discussed above. Also, veryadvantageously, if the method of sending or otherwise transmitting dataand/or information between the server/database and the communicationmodule changes as described above, the CAD softwareprogram/object/parametric symbol is typically unaffected, or may bechanged by the user, if needed or desired as described above.

The pricing information database(s) that are described herein may, veryadvantageously, be present on one or a plurality of local and/or remoteservers via an Intranet, the Internet, on one or a plurality of physicalstorage mediums, such as CDs, DVDs, hard drives, tape drives, thumbdrives and/or the like, on a network, such as a LAN, a WAN, a MAN, aCAN, a SAN, a VPN and/or the like, and/or the like, and updates to thedata and/or information present thereon may come from any or all of theforegoing, periodically or upon demand of a user (i.e., at any dateand/or time). The foregoing may have associate systems, devices and/orapparatuses for retrieving and/or using such information, such as CDplayers, DVD players and/or the like, which are well known by thosehaving ordinary skill in the art.

Very advantageously, the systems and methods of the invention can beused with any object in CAD (or other software design tool), and withany CAD company and/or product, as is discussed above, either with orwithout a communication module. Further, different add-on computer codeswith similar methodologies work successfully with different CAD (orother software design tool) software programs. If, for example, plug-incomputer codes are changed for different CAD companies due to theirprogramming (as is discussed above), and as a result of what is neededto make them perform the system and/or method of the invention, and theyare attaching attributes/properties and one or a plurality ofidentifiers for the purpose of sending to a database to retrieveinformation, then the system and method is essentially the same.

Further, and very advantageously, the add-on computer code can eitherrun inside of a CAD (or other software design) program and/orenvironment or outside of a CAD (or other software design) programand/or environment. In one environment, when the add-on computer code isinstalled (as is discussed herein), it acts as if it is part of thesoftware design program, and a merge module can put or insert thecomputer add-on code into the software design program. The merge modulecode operates as if it was compiled using the operating specificlanguage.

Alternatively, the add-on computer code can run outside of the softwaredesign program operating as a dynamic link library (DLL), executable(.exe), ActiveX, COM object, or combination thereof, or the like,permitting a user to feel as though it is working inside of a computersoftware design program, even though it is working outside of a computersoftware design program or platform.

Additional information about computer software programs and computerprogramming is present in John Lewis et al., Java Software Solutions(2nd Edition, Pearson Education, Inc., 2007, ISBN 0-13-222251-5); DonaldE. Knuth, The Art of Computer Programming, Volumes 1-4 (Addison-Wesley.ISBN 0-201-48541-9); O.-J. Dahl et al., Structured Programming (AcademicPress, ISBN 0-12-200550-3); Wilkes, M. V. et al., Preparation ofPrograms for an Electronic Digital Computer (Addison-Wesley); andAlexander Stepanov et al., Elements of Programming (Pearson Education,Inc., ISBN 13-978-0-321-63537-2).

Using the detailed teachings, resources and other information that areprovided herein, those of ordinary skill in the art may readily purchaseand/or write various computer software programs that function in themanners that are described herein, and may properly install them in acomputer to produce the systems of the present invention, and to carryout the methods of the present invention.

Installation of Architectural CAD Software on Local Computer

An initial step of the methods and systems of the present invention isto install architectural CAD (Computer Aided Design) software (oranother architectural, civil, industrial or other software design tool)on an architectural, civil, industrial or other plan drawer's local,remote or other computer and/or console system. The plug-in (add-on)computer software code of the present invention, in the form ofinstallation files, is also optionally, but preferably, installed on thesame local or remote computer system during the basic installation ofthe architectural CAD (or other software design tool) software.Alternatively, the plug-in (add-on) computer software code of thepresent invention may be installed after an installation of thearchitectural CAD software, and could be acquired either from a physicalstorage medium containing the add-on code (e.g., a compact disc, a DVD,a thumb drive, a tape drive and/or the like), or by its download from aremote server system, such as from the 1stPricing web site or anotherdesignated web site. (See the section set forth hereinbelow regarding“Installation.”)

After the software installation, the architectural CAD software program(or another architectural, civil, industrial or other software designtool) is then started in a manner known by those of skill in the art. Anexisting architectural CAD drawing, for example, for a room in a houseor in a commercial building, is then opened, or a new set ofarchitectural, civil or industrial design plans is created using anarchitectural CAD “Wall” (or similar) tool in a manner known by thosehaving ordinary skill in the art. (See the section set forth hereinbelowregarding “Interacting with the Wall Tool.”) The Symbol Palette of thedesired object (dragged and dropped from the symbol library—See FIG. 3),if one is present or employed, may then be activated in a manner knownby those having ordinary skill in the art. (See the section set forthhereinbelow regarding “Activation.”)

In an embodiment of the invention in which one or a plurality of localand/or remote databases containing pricing information is maintained ona remote server system, such as an Internet web site, for example, theonline 1stPricing web site, a connection is preferably activated by theCAD or other software design tool user, who has the plug-in (add-on)computer software installed within or outside of his architectural (orother) CAD program, e.g. an Internet connection. For a first-time user(generally an architect, builder or civil or industrial engineer)accessing the remote server system database(s), a ZIP code may,optionally, be entered to obtain pricing information for construction(or other) products in connection with the construction (or other)project, which may be obtained in connection with one, two, three, four,five or more different manufacturers, distributors and/or otherindividuals, businesses, organizations and/or entities within the zipcode, or outside of the zip code (nationally), to procure “the” bestprice for one or a plurality of, or each, construction product withinsuch zip code or nationally (if a price of a product should not, or willnot, vary much or at all between or among different zip codes),respectively. In certain situations, but not others, which may readilybe determined by those having ordinary skill in the art, the price ofone or more selected construction (or other) products (windows, doors,acrylic glass blocks, sky lights and/or the like) may or may not varywidely, or at all, with the geographical location, region or area of theconstruction (or other) project. Alternatively, such a price schedulecan be generated without the use of a ZIP code.

In some cases, pricing is national, rather than regional or local, andsuch pricing will not vary much or at all among, or between, differentareas or regions of the country or other geographic areas (i.e., thepricing will be the same, or very similar, for all regions). Whenpricing is national, it is generally not necessary or desirable to use azip code when generating a price for a construction plan (or other)element or price schedule. Velux skylights, for example, are typicallythe same price no matter where they are transported to, or from, becausetheir manufacturer is a national company, and does not vary its pricesaccording to different regions or areas of, or zip codes within, theUnited States (or elsewhere). Using the detailed information andillustrations that are provided herein, those having ordinary skill inthe art may readily determine whether or not a zip code is desirable orrequired in a particular situation and/or region in connection with aprocurement of pricing type of information.

Parametric symbols corresponding to construction plan (or other)elements are optionally, but preferably, employed in the systems andmethods of the present invention, and may be provided by the softwaredesign tool and/or by the plug-in computer software code. If one or moreparametric symbols are employed, a parametric symbol (window, door,acrylic glass block, sky light and/or the like) is clicked by a user,and a symbol palette dialog box typically opens up with the variousoptions/attributes for the user to select. Data for the product optionsare entered by the user via drop down boxes, check boxes or radiobuttons, or via direct data entry, and then clicking “OK.” By clicking“OK,” the user selects the options/attributes for the parametric symboland preferably inserts the resulting object into the construction plan.(A parametric symbol becomes an object once the user attaches attributesto it and inserts it into the construction plan.) Entry is then made ofspecific parameters that make up the parametric symbol, such as color,type of material, size, presence or absence of grids and the like. Theparametric symbol is then optionally, but preferably, inserted into theconstruction or design plans, for example, into a wall of a kitchen of ahouse. From there, the parameters of the parametric symbols can bemodified, as is necessary or desired. (See the section set forthhereinbelow regarding “Symbol Properties.”) The latter two steps can berepeated to establish the desired placement of the construction planelements for the construction project into the construction plandrawings. Afterwards, a price schedule may optionally be created. (Seethe section set forth hereinbelow regarding “Scheduler CreationControls.”)

Each of the parametric symbols employed by a user can be revised, added,deleted, modified and/or edited in any manner that is desired, or as theconstruction (or other) project requires. A resulting price schedule canthen be updated one or more times by the user, as is necessary ordesired, and then may optionally be transmitted (exported) over anIntranet or Internet connection, a LAN (local area network) or othernetwork, an external storage device or the like into one or a pluralityof databases. Revised pricing data, statements, indications and/orinformation can then be transmitted or sent back to the architecturalCAD (or other) drawing, which reflects new changes that have been made,and optionally, but preferably, provides a price schedule “ReferenceNumber.” This price schedule “Reference Number” can be entered into oneor a plurality of databases by the user to retrieve pricing data and/orinformation in connection with one or a plurality of selectedconstruction plan (or other) elements and/or parametric symbols(corresponding to selected construction plan (or other) elements), uponwhich the building products (doors, windows, and/or the like) listed ina corresponding price schedule can advantageously then be immediatelypurchased, or purchased on a subsequent date and/or at a subsequenttime. (See the section set forth hereinbelow regarding “OnlineOperations.”) Each time an object, parametric symbol and/or constructionplan (or other) element is changed after the initial drawing has beenpriced, the plug-in (add-on) computer software optionally, butpreferably, reminds the plan drawer that plan pricing data and/orinformation should be updated. Also, the plug-in (add-on) computersoftware optionally, but preferably, pings the pricing database(s)periodically to see if any pricing data and/or information has changed,or if there is a new version of the plug in (add-on) computer software,and then asks the plan drawer to make appropriate updates.

Installation of Plug-In Computer Software on Local or Other ComputerSystem and/or Console—FIG. 1

Installation of the plug-in (add-on) computer software code componentdescribed herein (permitting accessing of pricing data and/orinformation for one or a plurality of construction plan (or other)elements and/or in connection with one or a plurality of parametricsymbols), which a user may obtain from a CD ROM (or other physicalstorage device) or download from the 1stPricing or other website, orotherwise, on the same or other local or remote computer system and/orconsole may be accomplished via a set of installation files in a mannerknown by those having ordinary skill in the art. These installationfiles may be part of the architectural CAD (or other software designtool) software installation program, or may be accessed from a CD, LAN,WAN, Intranet, Internet or any other such medium or network. Theinstallation procedure typically requires the running of a Setup.exe(executable file), preferably using standard Windows™ OS methodology,although the invention can also be implemented using Mac, Linux or anyother such type of operating system. It is contemplated to include anopening advertisement popup to the architectural CAD software, promotingthe present invention. This popup could appear each time that thearchitectural CAD software is started. Selecting a checkbox that wouldbe imbedded within the popup would deactivate it.

The plug-in (add-on) computer software code is a set of computer codethat is designed to run within a parent computer software application orcode, particularly architectural CAD software (or another architectural,civil, industrial or other software design tool), as an internalcomponent, i.e., it “adds on” to the parent software application.Alternatively, the plug-in computer code may run outside of the softwaredesign tool operating as a dynamic link library, executable (.exe),ActiveX, COM object, or combination thereof; and/or the like.Installation of the plug-in (add-on) computer software code optionallyhas an effect of placing “parametric symbols” files, and associated datafiles, onto a computer in which the plug-in (add-on) computer softwarecode is installed. The parametric symbols in the parametric symbolsfiles depict popular configurations of common products, preferablyconstruction elements, such as different types of windows, doors,acrylic glass blocks, sky lights, cabinets, fireplaces, Forced AirUnits, drywall, lumber, insulation, molding, laminates, plumbingfixtures, electrical fixtures, and the like. In a preferred embodiment,three types of parametric symbols are provided: (1) Windows; (2) Doors;and (3) Acrylic Glass Blocks. The installation of the plug-in (add-on)computer software code also optionally, but preferably, adds thefollowing controls to the architectural CAD (or other) software: (1) an“activation” button, which is added to the main architectural CAD (orother) software toolbar, as is shown in FIG. 1; (2) a menu item labeled“1stPricing,” which is added in the architectural CAD (or other)software “View” menu; and (3) a “1stPricing” parametric symbol palette,which is added to the architectural CAD (or other) software palettes.

The systems and methods of the present invention may optionally employ apalette of one or a plurality of parametric symbols that comes standard(or otherwise) with architectural, civil, industrial and/or othercomputer software or that is provided by the plug-in computer softwarecode, and enables the existing software design tool to transmit or bringback from one or a plurality of databases data and/or information andcan use an existing palette, if necessary or desired. In the formersituation, the plug-in computer software code enables existing functionsin the architectural, civil, industrial and/or other computer softwareto price and/or pull in (bring or transmit back) information from one ora plurality of databases, remote server systems and/or the like.Alternatively, no palette, which is optional, may be employed. Thesystems and methods of the present invention will work successfully aslong as they have at least one identifier code, as is discussed herein.

Data Flow—FIGS. 2 and 35

FIGS. 2 and 35 show two different basic data interactions that may occurbetween the plug-in (add-on) computer software code describedhereinabove and the corresponding online or other database of pricingdata and/or information (geospatial information, product specificationinformation and the like.) In contrast with FIG. 2, the flow chart thatis shown in FIG. 35 additionally includes an optional communicationmodule. In these figures, the plug-in (add-on) computer software codeoperates within the architectural CAD (or other) software design tool,and transmits or sends outgoing data and/or information regarding one ora plurality, or all, of the construction plan (or other) elements and/orparametric symbols that have been selected by the user (constructionproducts), and that have optionally been imbedded within theconstruction plans, and their parameters, preferably first to anoptional communication module (FIG. 35), and then to a to a remoteserver system (FIGS. 2 and 35). However, as is shown in FIG. 2, theoutgoing data and/or information may be sent directly to a remote serversystem (i.e., without using a communication module). The outgoing datais optionally, but preferably, sent from the user's local computer overthe Internet via the user's ISP to a web site on a remote server system,for example, the online 1stPricing web site (FIGS. 2 and 35). The remoteserver system implements a pricing database in accordance with thepresent invention, and with the plug-in (add-on) computer software code.The plug-in (add-on) computer software code makes the construction plan(or other) elements and/or parametric symbols/objects “smart” byassigning code to the construction plan (or other) elements and/orparametric symbols/objects, particularly once they are inserted into theconstruction plan. When pricing information is generated, this plug-in(add-on) computer software counts the objects along with their assignedcode, and then goes out of the program preferably first to thecommunication module (FIG. 35), and then to the external database andoptionally provides a zip code. However, as is shown in FIG. 2, thisinformation may go directly to the external database (i.e., withoutusing an optional communication module). Then, this plug-in (add-on)computer software code gives the list of objects and their attributes tothe server, and asks for a match. After that, the plug-in (add-on)computer software sends the matches and the pricing information back tothe communication module (FIG. 35), and then to the CAD user's computer.However, as is shown in FIG. 2, this information may go directly to theCAD user's computer (i.e., without using a communication module). (Theremote server is one or more databases containing pricing informationand “talks” to CAD (or other software design tool) drawing objectspreferably via a communication module when they come in. The plug-in(add-on) computer software code is a communication link from the CAD (orother) software design tool to the database server (or otherdatabase(s)) and back to the CAD (or other) software design tool).)

Computer software that is present on the remote server system (orelsewhere), such as on the online 1stPricing web site, compares theinformation and/or data that it receives from the user with a pricingdatabase that is present at the remote server system (or elsewhere) todetermine appropriate prices for the various construction or otherproducts, and for the particular characteristics (parameters) thereof,that may optionally be represented by the parametric symbols. Thecomputer software then returns the pricing information and/or data,preferably over the Internet, preferably to the communication module,and then to the user's local computer system (FIG. 2). The plug-in(add-on) computer software code receives the pricing data and/orinformation provided from the remote server (or other) system,optionally generates a price schedule for the construction plan or otherelements, and optionally imbeds a price schedule including pricing dataand/or information directly into an architectural CAD (or other softwaredesign tool) drawing, such as into a window that is present in a kitchenof a house.

Symbols Palette—FIG. 3.

As is shown in FIG. 3, a Symbols Palette, which optionally becomespresent on the user's local or other computer and/or console as a resultof the plug-in (add-on) computer software code, includes a set ofcontrols and a list of one or more architectural (or other) parametricsymbols. The controls are preferably divided into two groups: (1) atoolbar; and (2) scheduler controls. In the disclosed embodiment, theparametric symbols are preferably organized into three groups orlibraries: (1) windows; (2) doors; and (3) acrylic glass blocks.

Activation

The Symbols Palette typically cannot be used until it is activated.Clicking the activation button or menu item that is present therein willgenerally launch (activate) the Symbols Palette. After installation ofthe plug-in (add-on) computer software, the Symbols Palette can belaunched by default. To activate the Symbols Palette, an architect orother user may: (1) click the “1stPricing activation” (or a similar typeof) button; (2) select “View/1stPricing” (or a similar menu item) fromthe menu; or (3) click the “1stPricing” (or a similar type of) tab inthe architectural CAD (or other software design tool) software palette.

Toolbar—FIGS. 4 and 5

In a preferred embodiment of the invention, as is shown in FIG. 5, thetoolbar comprises four controls, which include one drop down menu, andthree buttons, and are as follows:

-   -   (1) A “View Library” drop down menu allows the user to arrange a        list of available construction plan (or other) elements and/or        corresponding parametric symbols to display a specific type of        construction plan (or other) element and/or parametric symbol,        such as windows, doors, skylights, acrylic glass blocks, and/or        the like, or to view all of the construction plan (or other)        elements and/or parametric symbols by selecting the “All        1^(st)Pricing Symbols” option (or a similar type of option).    -   (2) A “View List” button allows the user to set the construction        plan (or other) elements and/or parametric symbols list, so that        only the names of the construction plan (or other) elements        and/or parametric symbols appear, such as Bay with Casement        Flankers, or 2 Panel Sliding Door XO.    -   (3) A “View Details” button allows the user to set the        construction plan (or other) elements and/or parametric symbols        list, so that each construction plan (or other) element and/or        parametric symbol is optionally, but preferably, listed with        four details (FIG. 4): (1) Name; (2) Library; (3) Description;        and (4) Full Path. Preferably, the construction plan (or other)        elements and/or parametric symbols are listed vertically, with        the detail organized in four columns horizontally. When this        option is selected, an additional control button is preferably        appended to the top of each of the detail columns. Clicking on        any of these additional buttons preferably reorders the symbols        list alphabetically by the detail that the associated column        contains.    -   (4) An optional “View Help” button allows the user to open a        “1stPricing” (or other) help system, which permits the user to        get help.

Parametric Symbols—FIGS. 6, 7, 8 and 9

Optionally, but preferably, a set of one or more architectural (orother) parametric symbols (or construction plan (or other) elements) areprovided by the plug-in (add-on) computer software code to represent amajority (or more) of possible options that are generally available to auser of the system of the present invention. Each parametric symbol (orconstruction plan element) typically has one or a plurality of uniqueaspects and/or attributes (parametric symbol values) which, optionally,may be selected by a user prior to optionally inserting a parametricsymbol (or construction plan element) into a construction plan drawing,such as width, height, color, depth, thickness of glass and/or texture,and is typically a combination of two architectural CAD (or othersoftware design tool) objects: (1) a two-dimensional representation of aconstruction element; and (2) a three-dimensional representation of aconstruction element (as is shown, respectively, in FIGS. 8 and 9).However, the user does not need to select any parametric symbol valuesfor any parametric symbols, which values are optional, because eachparametric symbol (or construction plan element) will typically havepre-set parametric symbol values, which will generally be used unlessthe user selects different parametric symbol values, as is discussedbelow. The parametric symbols (and construction plan elements) aredesigned to interact with an architectural CAD software “Wall Tool” (orsimilar tool). After a user optionally selects one or more parametricvalues for one or more parametric symbols (or construction planelements), the parametric symbols (or construction plan elements) areoptionally, but preferably, inserted into the construction plan drawingsby clicking on one or more of the parametric symbols (or constructionplan elements) that are present in the list of parametric symbols thatis present in the Symbols Palette, and then moving (dragging) them intothe architectural (or other) drawing, such as a room of a house. Aparametric symbol (or construction plan element) advantageously willtypically automatically align itself with the orientation of a wall of astructure, such as a house, if applicable, or with any other applicablelocation, thereby showing the user a preview of the parametric symbol(or construction plan element) prior to placing the parametric symbol(or construction plan element) within the architectural drawing.

Before a parametric symbol (or construction plan element) is moved intothe construction (or other) plans, preferably a “1stPricing SymbolProperties” palette (or similar) dialog automatically appears. This“1stPricing Symbol Properties” palette dialog allows “parametric symbolvalues,” such as color, construction material, size, presence or absenceof grids, layout of grids, number of grids, type of glass, and/or thelike, for example, in the case of a window, 42″×36″, Standard PatternFlat Grids and 5 Segment Bow, or in the case of lumber, 2″×4″×10′lumber, to be optionally specified for each parametric symbol (orconstruction plan element) that is present in the Symbols Palette. Entrymay be made by a user of specific parameters that make up the parametricsymbol (parametric symbol values) by clicking on various available dropdown menus, and then selecting specific available parameters, as isdescribed herein.

Parametric symbol values can include any size or material specificationfor a given item, such as a construction product (window, door, acrylicglass block sky light, and the like), including a standard product itemnumber for a respective construction element. In a new drawing, as isshown in FIG. 6, a User ID dialog preferably automatically appears whenthe first parametric symbol (or construction plan element) is insertedinto the construction plans if a User ID has not yet been entered by theuser. Further, and very advantageously, the “1stPricing SymbolProperties” palette dialog (or a similar dialog) may optionally berecalled to edit one or more parametric values for any parametric symbol(or construction plan element) that has already been inserted into theconstruction plans. Selecting a parametric symbol and clicking the rightbutton on a computer mouse will generally open a local menu. Selectingthe “1stPricing Symbol Properties” palette option from the local menuwill generally open the “1stPricing Symbol Properties” dialog for theparametric symbol.

Operation can be employed, for example, in the manner that is shown inFIG. 7. A user may click on the parametric symbol(s) (or constructionplan elements) to be inserted into the construction plans, and move(drag) the parametric symbol(s) (or construction plan elements) to aparticular location in the construction plans where it is to beinserted, such as a particular wall in a kitchen of a house, and thenrelease the button. The user may modify the parametric properties usingthe “1stPricing Symbol Properties” palette (or a similar type of)dialog, as is desired or necessary. When the parametric symbol (orconstruction plan element) is placed into the construction plans, andmodified as desired or required, the user may click “OK,” whichtypically causes the object to change to reflect the new parametersentered into to the palette.

Symbol Properties

Each type of parametric symbol corresponding to a product item, such asa construction plan (or other) element (windows, doors, acrylic glassblocks, sky lights and the like), generally has a unique set ofparametric attributes (properties) that may be specified for eachparametric symbol. In addition, each specific parametric symbolgenerally has a unique range of values that is permissible for thoseparametric attributes. In some embodiments of the invention, parametricsymbol properties may only be edited by using the “Properties Dialog”(or a similar type of a dialog). To edit the parametric symbolproperties in these embodiments, a user should select the parametricsymbol to be modified, and then click the right mouse button. The usershould then select “1stPricing Properties” from the local menu andmodify the parametric symbol properties in the “Properties Dialog” as isnecessary or desired. When the parametric symbol properties are modifiedas required or desired, the user should then click “OK.”

General Properties for Parametric Symbols—FIG. 10

As is shown in FIG. 10, “General Properties” are optionally availablefor all construction plan (or other) element and/or parametric symboltypes (often herein collectively referred to as “parametric symbols”).The “Parametric Controls” (or similar types of controls) that arepreferably available as General Properties are indicated as follows. The“Symbol” text box field allows the user to notate individual parametricsymbols (to put a text notation next to the parametric symbol/objectwhen it is optionally inserted into the construction plan). The notationwill typically also be placed on an optional price schedule. The“Location” text box field allows the user to notate (to insert apersonal remark or notation) the physical location of the parametricsymbol in the set of construction plans (e.g. master bedroom, kitchen,living room, bathroom, etc.). The “Remarks” text box field allows theuser to make special notations about the parametric symbol, such as Gameroom or Master Bedroom. The “Distance off Floor” text box field allowsthe user to specify a measurement value that specifies where the bottomof the parametric symbol is set in relation to a floor, for example, howfar a bay window is off of the floor. Advantageously, the plug-in(add-on) computer software code also optionally includes animplementation wherein, upon insertion of a parametric symbol, theimplementation indicates whether or not the location of that parametricsymbol meets the criteria of a Uniform Building Code (UBC). The plug-in(add-on) computer software code generally knows the building codes forthe various parametric symbols, particularly once they are optionallyinserted into the construction plan. It knows a window is a window, andthat building codes are associated with it. For example, a window 2 feetfrom a door must generally be tempered. If a window is inserted lessthan 2 feet from a door, the computer program would typically let theuser know to temper it. As another example, a 2″×4″ 16″ on center wallframing can generally only be used for the first two floors of astructure. Thus, when a 3^(rd) floor of a structure is drawn on top of a2nd floor, and the 1^(st) floor is 2″×4″ 16″ on center, the computerprogram would typically let the user know that the 1^(st) floor mustchange to 2″×6″ 16″ on center.

The “Properties Dialog” preferably also contains three buttons that arepreferably present for all parametric symbols, and which preferablyfunction as follows:

-   -   Clicking the “OK” button accepts the parametric symbol        configuration, closes the Properties Dialog, and makes the        appropriate changes in the construction plans;    -   Clicking “cancel” closes the Properties Dialog, and ignores any        changes that were made to parametric symbol properties; and    -   The “help” button allows the user to open the “1stPricing” help        system, which offers assistance in using the plug-in (add-on)        computer software code, such as how to insert a parametric        symbol into a construction plan.

Windows Properties (for Windows Only)—FIG. 11

As is shown in FIG. 11, “Windows Properties” are specific parametricattributes that pertain specifically to windows. Specific ranges/optionsfor windows may vary for each parametric symbol. As is discussed below,there are optionally, but preferably, three Windows Properties'classifications for windows: (1) Window Details; (2) Frame Details; and(3) Options.

Window Details

The “Width” drop down menus that are preferably located in the “SymbolsPalette” are used to select width of windows in inches and in fractionalinch increments. The “Height” drop down menus are used to select theheight of windows in inches and in fractional inch increments. The“Handing” drop down menus are used to select the handing (right or left)type for the windows where applicable, such as for a 3 Segment BowWindow with Casement Flankers.

Window Frame Details

The “Type” drop down menu that is preferably located in the “SymbolsPalette” is used to select the window frame type, such as “Nail On” orblock frame. The “Color” drop down menu is used to select the windowframe color, such as white, black, green or the like. The “Material”drop down menu is used to select the composition of the window frame,such as vinyl, wood, aluminum, fiberglass or wood clad.

Window Options

The “Grid Style” drop down menu that is preferably located in the“Symbols Palette” is used to select the desired window grid pattern,such as standard pattern flat, standard pattern sculptured, pattern 3 aflat or pattern 2 sculptured. The plug-in (add-on) computer softwarecode generally automatically calculates the grid frequency for a windowbased upon the size of the window. The “Glass Type” drop down menu isused to select the desired window glass type, such as Azurite, SolarGrey, Glue Chip, Obscured and the like. The “Low E” check box is used toselect a Low Emissive Coating on the window glass. The “Argon Gas” checkbox is used to select Argon Gas filled window glass. The “Tempered”check box is used to select Tempered Glass for the window. The “BreatherTubes” check box is used to select breather tubes for the window.

Acrylic Glass Block Properties (for Acrylic Glass Blocks only)—FIG. 12

As is shown in FIG. 12, Acrylic Glass Block properties are specificparametric attributes that pertain specifically to acrylic glass blocks.Specific ranges/options for acrylic glass blocks may vary for eachparametric symbol. There are preferably three classifications for theacrylic glass blocks: (1) Acrylic Glass Block details; (2) FrameDetails; and (3) Options.

Acrylic Glass Block Details

The “Width” drop down menu that is preferably located in the “SymbolsPalette” is generally used to select width of the acrylic glass block ininches and in fractional inch increments. The “Height” drop down menu isgenerally used to select the height of the acrylic glass block in inchesand fractional inch increments. The “Handing” drop down menu isgenerally used to select the handing (right or left) type of the acrylicglass block where applicable.

Frame Details

The “Color” drop down menu that is preferably located in the “SymbolsPalette” is generally used to select the acrylic glass block framecolor, such as white, black, green, blue or the like. The “Material”drop down menu is generally used to select the composition of theacrylic glass block frame, such as vinyl, wood, aluminum, fiberglass,wood or clad.

Acrylic Glass Block Options

The “Pattern” drop down menu that is preferably located in the “SymbolsPalette” is generally used to select the acrylic block pattern, such asdiagonal patterns. The “Color” drop down menu is generally used toselect the acrylic glass block color, such as clear wave, frosted wave,green or blue. The “Width” drop down menu is generally used to selectthe acrylic glass block width, such as 6″. The “Thickness” drop downmenu is generally used to select the acrylic glass block thickness, suchas 2¼″.

Door Properties (for Doors Only)—FIG. 13

As is shown in FIG. 13, “Door Properties” are specific parametricattributes that pertain specifically to doors. Specific ranges/optionsfor doors may vary for each parametric symbol. There are preferablythree classifications for doors: (1) Door Details; (2) Frame Details;and (3) Options.

Door Details

The “Width” drop down menu that is preferably located in the “SymbolsPalette” is generally used to select width of a door in inches and infractional inch increments, such as 96″. The “Height” drop down menu isgenerally used to select the height of a door in inches and infractional inch increments, such as 96″. The “Handing” drop down menu isgenerally used to select the handing (right or left) of a door typewhere applicable, such as for a 2 Panel Siding Door OX. (“OX” means “O”is the stationary panel and “X” is the moving panel as viewed fromoutside of the door looking in.)

Frame Details

The “Type” drop down menu that is preferably located in the “SymbolsPalette” is generally used to select the door frame type, such as “NailOn” or block frame. The “Color” drop down menu is generally used toselect the door frame color, such as white, black, blue, red, green orthe like. The “Material” drop down menu is generally used to select thecomposition of door frame, such as vinyl, wood, aluminum or fiberglass.

Options

The “Grid Style” drop down menu that is preferably located in the“Symbols Palette” is generally used to select the desired grid patternof the door, such as standard pattern flat, standard pattern sculptured,pattern 3 a flat or pattern 2 sculptured The plug-in (add-on) computersoftware code optionally, but preferably, automatically calculates thegrid frequency based upon the size of the door. The “Glass Type” dropdown menu is generally used to select the desired door glass type, suchas clear, Azurite, Solar Grey, Glue Chip or Obscured. The “Low E” dropdown menu is generally used to select a Low Emissive Coating on the doorglass. The “Argon Gas” check box is generally used to select Argon Gasfilled door glass. The “Tempered” check box is generally used to selectTempered Glass for the door. The “Breather Tubes” check box is generallyused to select breather tubes for the door.

Pricing Scheduler Controls—FIG. 14

As is shown in FIG. 14, the “Scheduler Controls” optionally provided bythe plug-in (add-on) computer software code are used to optionallycreate and maintain a price schedule that is generated using theparametric symbol data that is optionally contained in the constructionplans. A price schedule is a detailed part list of the one or moreparametric symbols and/or construction plan elements that are optionallycontained in the construction plans with appended pricing data. Thepricing scheduler of the present invention typically use an Internetconnection to access corresponding pricing data from one or moredatabases present on a remote server system, such as a web site, forexample, the online 1stPricing web site. However, an Internet connectionis not necessary, and pricing data and/or information may be accessedfrom one or more databases that are present on or in a physical storagemedium, such as a CD, DVD, hard drive, disc drive, tape drive and/or thelike, or over a network or an Intranet. In some circumstances, such aswhen a physical storage medium or network is not employed, if noInternet connection is present, an open price schedule and/or “green”schedule may be generated, but pricing data and “green” data willtypically be absent. Only one piece of data is generally required forthe pricing portion of the scheduler to work to procure price data thatvaries between different zip codes, regions or areas, which is a ZIPcode for the location of the construction project. However, when pricedata and/or information does not vary between different zip codes,regions or areas, such as when a price is a national price (i.e., it isthe same or very similar regardless of location within the United Statesor another country), the use of a zip code is not necessary. One controlwhich is accessible from different paths in the pricing scheduler ispreferably, but optionally, used to input this pricing data. (If theuser does not allow one or more parametric symbols and/or constructionplan elements to be priced, no list of materials, or correspondingpricing data, will generally be provided. However, the user can stilldraw the objects.)

Pricing Scheduler Data Controls

As is described below, and as is shown in FIG. 14, three PricingScheduler Data Control buttons are preferably used to create and/orupdate the price scheduler for accurate operation: (1) RegistrationButton; (2) Project ZIP Code Button; and (3) 1stPricing ID Button.

Registration Button—FIG. 15

For new users, clicking the “Registration” button generally opens up theoptional Registration Dialog that is shown in FIG. 15. To first get tothe “Registration” button, the user can also click on the 1stPricing IDbutton (FIG. 17) (or a similar type of a button). The user should thenclick a “Click here to sign up for a 1stPricing ID” link (or similarlink), which generally opens up the “Registration” dialog box (FIG. 15),and complete the registration form that generally appears once theRegistration Dialog is opened, which registers the new user with theonline 1stPricing web site maintained by 1stPricing (or with a similarweb site or registration tool). An active Internet connection may oftenbe required for this to work properly, but is not always necessary. TheRegistration Dialog preferably provides the following controls forentering data: (1) a “First Name” text box (preferably mandatory); (2) a“Last Name” text box (preferably mandatory); (3) a “Company Name” textbox; (4) an “Address” text box; (5) a “City” text box; (6) a “State”drop down menu; (7) a “Postal Code” text box; (8) a “Phone” text box;(9) a “Fax” text box; (10) an “Email” text box (preferably mandatory);and (11) an “Email me about updates and special offers” check box. ToRegister the new user with 1stPricing (or another entity), the userclicks the “Registration” button, fills out the registration form (FIG.15) and then clicks “OK.” A new user confirmation notification ispreferably subsequently sent to the new user electronically (via anIntranet, the Internet, a LAN or other network, etc.) or physically(U.S. or foreign mail, facsimile, etc.) containing the user information.Such registration generally creates an online or other account at the1stPricing web site maintained by 1stPricing (or at some other desiredlocation), which can be used for placing orders for construction (orother) products, reviewing orders and comparison-shopping among a widevariety of different, and possibly competing, manufacturers and/ordistributors that market products within the zip code selected, and/orother third parties and/or entities. This, very advantageously, allows aconsumer to procure the most competitive pricing within a particular zipcode, or nationally, for one or more construction (or other) productshaving a wide variety of desired characteristics, for example, a white,vinyl clad, double pane bay window having a specific height, width anddepth, a specific number and type of grids, a Low Emissive Coating onthe glass, and tempered and Argon gas filled glass, as well as breathertubes.

Project ZIP Code Button—FIG. 16

The ZIP Code dialog provides two buttons: (1) “OK”; and (2) “Skip.”Selecting the “OK” button has the effect of entering the ZIP code intothe pricing scheduler. Pressing “Skip” will cause ZIP code changes to beignored, and the user will be prompted that a correct ZIP code isrequired for accurate pricing. To properly set the project ZIP code, theuser should: (1) click the “Project ZIP Code” button; (2) then, enterthe correct ZIP code for the project location; and (3) then, click “OK.”

Clicking the “Project ZIP Code” button preferably opens a ZIP Codedialog, as is shown in FIG. 16. The ZIP Code dialog is optionally usedto enter the physical zip code of the site of a construction (or other)project, which is used to obtain an accurate price quotation for one ormore construction (or other) products within that zip code thatoptionally correspond to one or more parametric symbols that haveoptionally been inserted into the set of construction (or other) plans.The ZIP Code dialog preferably provides two buttons: (1) “OK”; and (2)“Skip.” Selecting the “OK” button generally has the effect of enteringthe ZIP code into the pricing scheduler. Pressing “Skip” will generallycause ZIP code changes to be ignored, and the user will generally beprompted that a correct ZIP code may be required for accurate pricing.To properly set the project ZIP code, the user should: (1) click the“Project ZIP Code” button; (2) then, enter the correct ZIP code for theproject location; and (3) then, click “OK.” A zip code is not necessaryif a user only desires to procure national or other regional pricingdata and/or information.

1stPricing ID Button—FIG. 17

Clicking the 1stPricing ID Button (or a similar button) preferably opensa “User ID” (or similar) dialog, as is shown in FIG. 17. This User IDdialog preferably provides a “User ID” text box field, which generallyenables a user to obtain a “1stPricingID” (or a similar type of anidentification or ID). In order to have a 1stPricing ID generated, andset a User ID, the user preferably must first have filled out andsubmitted the Registration Dialog form (FIG. 15) (or a similar type of aform), as is described hereinabove. The User ID will typically initiallybe whatever the user specifies as a User Name on the Registration Dialogform. Clicking the “OK” button (FIG. 17) generally sets the User ID,closes the dialog, and provides the 1stPricing ID, which is alsotypically the set User ID. (The User ID and the 1stPricing ID aretypically the same. The 1stPricing ID is typically a user ID name thatthe user has selected himself. He uses it along with a password to savepricing quotes.) The user is then typically sent a user name andPassword ID electronically via Intranet, Internet, e-mail, LAN or othernetwork, facsimile, U.S. or foreign mail, or the like. In contrast,clicking the “Cancel” button generally closes the dialog. To set theUser ID as indicated above (and receive a 1stPricing ID), the usergenerally clicks the “1stPricing ID” button, and after properlyregistering, enters a User ID and then clicks “OK.”

Parametric Symbol “Scheduler Creation” Controls—FIG. 19

The parametric symbol “Scheduler Creation” controls that are shown inFIG. 19 enable an optional creation, updating, and/or viewing of aschedule of one or more selected parametric symbols, and theircharacteristics, which may include pricing data and/or information, aswell as other types of data and/or information. The “Enable thisSession” check box generally allows the plug-in (add-on) computersoftware code to connect to one or more online 1stPricing web site (orother designated web site) databases and/or offline databases containingpricing information preferably from at least one to up to about ten ormore different manufacturers, distributors or other third parties orentities (for one or more, or all, parametric symbols, and one or more,or all, parameters) to obtain pricing information for selectedparametric symbols, and selected parameters (often those that have beeninserted into the set of construction plans). If this box is notchecked, the parametric symbol scheduler and user may not be able toaccess a database containing pricing data and/or information, and theparametric symbol schedule may possibly be generated withoutcorresponding pricing data and/or information. The “Update” and “ViewSchedule” buttons are preferably used once a plan has already beenpriced. “Update” will preferably generate a new price schedule, and“View Schedule” generally takes the user to the existing price schedule.

“Create” and “Update” Parametric Symbol Schedule Buttons—FIG. 20

If no optional parametric symbol schedule yet exists, the user willpreferably see a “Create” button, which is preferably located in the“Symbols Palette” (FIG. 3). Clicking on this “Create” button willpreferably open a “1stPricing” schedule dialog (or a similar type of adialog), as is shown in FIG. 20, which preferably includes a “Generate”and a “Cancel” button. This “1stPricing” schedule dialog is generallyused to generate a parametric symbol schedule that is based upon theparametric symbols, and their corresponding characteristics, that mayoptionally have been inserted into the construction plans, and that mayinclude pricing data and/or information. This “1stPricing” dialog alsopreferably prompts the user to input the size of font to be used in theparametric symbol schedule for ease of reading the schedule. The size ofthe parametric symbol schedule that is generated generally depends uponthe font size used, as well as upon the scale settings that are set bythe plan drawer in architectural CAD (or in another software designtool). Thus, to create a parametric symbol schedule, generally the“Create” button is clicked, a schedule font height is typed in, and the“Generate” button is clicked. A parametric symbol schedule willtypically then be created, which contains pricing date (FIG. 20), andpossibly other types of data and/or information. The programming of theoptional communication module, at the 1stPricing web site or 1stWindowsweb site (or at similar types of web sites) generally knows if a user isattempting to procure pricing information in connection with inserted orother parametric symbols and/or construction plan elements (i.e., thiscan be determined from tags that are put into the code when it comesfrom the plan drawer or other user). The parametric symbol schedule(including a pricing schedule, or the like) can then optionally beinserted directly into the construction plans by the plug-in (add-on)computer software code.

If, on the other hand, a parametric symbol schedule already exists, theuser will preferably see a different button on the “Symbols Palette”(FIG. 3) that is preferably labeled “Update,” instead of “Create,” aswell as a button preferably labeled “Export Schedule.” Using the“Update” button will generally have the effect of changing theparametric symbol or construction plan element schedule according toparametric symbol or construction plan element changes that may havebeen made by the user since the creation of the parametric symbolschedule, for example, to change the selected size of a window, or sinceits last update. In all other respects, this procedure preferably isgenerally the same as using the “Create” button. If the user clicks the“Export Schedule” button” (FIG. 3), the user is then preferably askedthe file format of the database that the user intends to use (Excel,Plain Text, Word, PDF and/or the like), and where to save the parametricsymbol schedule file on the user's computer.

When an optional parametric symbol schedule is generated, all of theschedule information is preferably saved at the online 1stPricing orother designated web site, and can be accessed by the user using theplans' 1^(St) Pricing Reference Number generated by the plug-in (add-on)computer software code. When a user session is enabled, and there is anopen Internet or other connection, a “Reference Number” is preferablyappended to the parametric symbol schedule. Preferably, this number canbe used to retrieve the parametric symbol schedule at the online1stPricing or other designated web site.

Some construction (or other) products may not be available in an areadesignated by a ZIP code that is entered by a user. In such an instance,pricing is not always listed for all of the parametric symbols that areinserted into the construction plans, and a “N/A” (not applicable) (orsimilar) designation is preferably placed into the optional parametricsymbol or price schedule in place of a price.

“View Schedule” Button

Clicking a “View Schedule” (or similar type of a) button on the SymbolsPalette (FIG. 3) will typically zoom to the part of the architecturalCAD (or other software design tool) drawing of the construction planswhere the optional parametric symbol (or pricing and/or “green”)schedule has been inserted. If one or more parametric symbols have beenaltered without updating the parametric symbol (or pricing and/or“green”) schedule, a message will preferably be appended to the schedulethat reads the same as, or similar to, the following: “Schedule may notreflect the window specifications.” (If windows are not involved, themessage will preferably refer to the particular type of parametricsymbols, objects and/or construction plan elements that are involved,such as doors, acrylic glass blocks, cabinets, drywall and/or the like.)

The Schedule—FIG. 21

In a resulting price schedule that is shown in FIG. 21, uniqueparametric symbols and/or construction plan elements, such as windows,doors, skylights, cabinets, acrylic block and/or the like, arepreferably listed vertically. Details (characteristics) for one or more,or each, parametric symbol and/or construction plan element arepreferably organized horizontally under the following (or similar typesof) columns: Symbol, Location, Width, Height, Handing, Color, Type,Material, Grid Style, Low E, Argon Gas, Tempered, Breather Tubes, Glass,Glazing, Remarks, Quantity and Pricing from at least one Manufacturer orDistributor (or other third party or entity).

Interaction of Parametric Symbols with CAD Wall Tool—FIG. 22

Very advantageously, as a result of the plug-in (add-on) computersoftware code, the architectural parametric symbols and/or constructionplan elements can optionally be made by the user to auto-imbed into oneor more wall depictions that have been created with the architecturalCAD (or other software design tool) computer program, particularly its“Wall Tool,” as is shown in the two-dimensional and three-dimensionaldepictions that are present in FIG. 22. A parametric symbol and/orconstruction plan element can optionally be moved from the “SymbolsPallet” into a selected wall, for example, into a wall in a masterbedroom of a house, or into a wall in an office of a commercialbuilding. To insert a parametric symbol and/or construction plan elementinto a particular wall, the particular parametric symbol is preferablydragged and dropped to the desired wall location, and then entry ispreferably made of the specific parameters that make up the parametricsymbol and/or construction plan element into the construction plans atthe site of the desired wall. The properties of the parametric symbolsand/or construction plan elements can preferably be modified using the“Properties Dialog,” as is necessary or desired, and as is describedhereinabove. Afterwards, the user preferably clicks “OK.” The parametricsymbol and/or construction plan element will typically automatically,properly and almost instantaneously align with the wall and auto-embeditself into the wall, thereby permitting the user to see how theparametric symbol and/or construction plan element will look in thewall, or in a room that contains the wall. Appropriate cutouts for theparametric symbol and/or construction plan element are preferably madein the wall, and the wall will preferably then typically “heal” aroundthe parametric symbol and/or construction plan element.

Online, Offline and Other Operations

A wide variety of numerous different embodiments of the systems andmethods of the present invention that can be employed to automaticallyprocure pricing data and/or information for one or a plurality ofconstruction plan (or other) elements (or parametric symbolscorresponding to construction plan elements) are illustrated in detailin FIGS. 23-51. These various embodiments may or may not employ anIntranet or the Internet, and may or may not include one or a pluralityof local and/or remote computers, consoles, server systems,communication modules, databases, physical storage mediums (CDs, DVDs,hard drives, thumb drives, tape drives and/or the like), data updateservers, networks (LAN, WAN, CAN, SAN, MAP, PAN, VPN and/or the like),installer programs and/or the like. From the detailed information andnumerous illustrations that are included herein, those having ordinaryskill in the art will recognize that many other embodiments of thesystems and methods of the present invention also exist, which are fullyincluded within these systems and methods.

Procuring a Price Quote—FIGS. 23, 24, 25 and 26

As is shown in FIG. 23, the “Reference Number” listed on a 1stPricingScheduler, such as 6519035, is the name of a price schedule. A ReferenceNumber may be used on the online 1stPricing or other designated website, or in connection with another online or offline database, toaccess pricing data and/or information for one or a plurality ofconstruction plan (or other) elements and/or that correspond to aparticular parametric symbol schedule. Using the Reference Number willgenerally automatically log a user onto this web site. Price schedulesmay also be reviewed by logging onto the online 1stPricing or otherdesignated web site, or into one or a plurality of other databases, byentering the 1^(st)Pricing Reference Number and then clicking “Go.” Oncea pricing schedule has been displayed, the user may select the type ofwindow, acrylic block, door and/or other type of manufacturer,distributor or other third party or entity that it would like to receivea price quote (an actual price, an average cost, another type of desiredcost and/or the like) from, as is shown in FIG. 24. A price schedulewill typically be presented to the user when the user selects type and“Continue,” as is shown in the example that is illustrated in FIG. 25.The user may also generally access pricing schedules by entering theUser ID and Password that was created for the user during registration,as is described hereinabove. This will generally provide access to the“My Account” area of this web site. The user's account will preferablycontain all of the parametric symbol and price schedules that have beengenerated by the registered user. By selecting “View” of the desiredprice schedule (or a similar type of a button), the user can generallyaccess the pricing data and/or information.

If a price schedule needs to be changed, the user can generally clickthe “Alter Quote” button (or a similar type of a button), as is shown inFIG. 26, and change the size and/or options for any or all of theproducts specified in the price schedule.

Comparison Shopping Among Different Manufacturers/Distributors—FIGS. 27and 28

A tremendous advantage of the systems and methods of the presentinvention is an extended option that is preferably present in the online1stPricing or other designated web site, or that may be employed withone or a plurality of other databases, and that preferably permits auser to almost instantaneously (generally within no more than about fiveseconds, and usually at least within about the same day) comparison shopfor price quotes preferably tailored to a particular construction (orother) plan element schedule or parametric symbol schedule among two,three, four, five or even ten or more different window, acrylic glassblock, door, sky light and/or other manufacturers and/or distributors(or others) that manufacture and/or distribute (or otherwise provide)corresponding construction products within the zip code selected by theuser, or nationally or within some other required or desired region orarea, as is discussed hereinabove, or from other third parties orentities. This feature very advantageously generally permits the user todetermine the most competitive or “best” “real time” price for each ofthe different construction (or other) plan elements and/or parametricsymbols that are preferably described in the price schedule, which canpotentially provide a user with a huge savings of money, as well as timespent comparison shopping, and to see a side-by-side comparison ofpricing provided by competing manufacturers and/or distributors (orother third parties or entities) in all states throughout the UnitedStates, in other U.S. or foreign regions or areas, or nationally (i.e.,“buy-it-now” pricing at the time of request by the user). The “best”price is generally a final price that the user can rely on, and thatwill typically not change (unless the user makes changes to one or moreconstruction plan elements and/or parametric symbols), which is in starkcontrast to an “estimate.” As is known by those having ordinary skill inthe art, a “price” is an assigned amount of money that is required to bepaid in order to make a purchase, and an “estimate,” in stark contrast,is a rough calculation, an approximation, a judgment or an opinion.

As is shown in FIG. 27, a user can generally generate a comparison ofpricing between available manufacturers/distributors (or other thirdparties or entities) by clicking on “Compare Prices” in the “ComparisonPricing Palette.” In addition to prices, manufacturer/distributor (orother third party or entity) information will generally also appear,such as the manufacturer's name, address, phone number, e-mail addressand/or the like. For example, the construction product “1stWindows VinylSliding Patio Door” having particular characteristics and configurationsselected by a user is described in FIG. 28 (left side). The center andright portions of FIG. 28 show pricing for this particular constructionproduct (patio door) within the zip code selected by the user by fivedifferent patio door manufacturers/distributors (1stWindows,International, Milgard, Summit and Superior). Because these prices forthe exact same type of patio door, and “green” ratings and/orcertifications, vary widely (from $506.51 at 1stWindows to $636.35 atSummit), this feature very advantageously permits the user to choose thepatio door manufacturer/distributor for the construction project thathas the most competitive or “best” pricing and a “green” certification.If the user desires to substitute another patio doormanufacturer's/distributor's construction product, the user can simplyclick on the “Radio” button next to the desired price. The priceschedule and “green” schedule will then generally be amended, and thenewly selected patio door manufacturer's/distributor's product will thengenerally appear in the price schedule.

The prices that are described herein are typically final prices that maybe used to immediately purchase (on line, offline or otherwise) one ormore construction (or other) plan elements that are present in aconstruction (or other) plan, such as a window and/or door. However, theprices may, alternatively, be average or any other types of desiredprices within a particular zip code, foreign or U.S. region or area, ornationally. The online 1stPricing or other designated web site, or otherdatabases, very advantageously permits architects, civil engineers,industrial engineers, builders, contractors, subcontractors and otherusers to rapidly create a precise bill of materials with multiplebrands, distributors, manufacturers (or other third parties orentities), line item pricing and online or offline purchasing.

Completing the Order and Purchasing the Products—FIGS. 29, 30, 31, 32and 33

Once a price schedule is completed and verified by the user, the usercan generally proceed to a check out process to purchase the desiredconstruction or other products, such as one or more windows, doors,acrylic glass blocks and/or sky lights. To begin the check out process,the user can click the “Check Out” button (or similar type of a button)preferably located in the “Check Out” window of the online 1stPricing orother designated web site (or otherwise). If the user either is not aregistered user, or is a registered user, but is not logged into thesuitable user account, in this embodiment (but possibly not in otherembodiments), the user will generally be redirected to a page where theuser is given the choice of “Sign Up,” “Continue” or “Check Out,” whichis illustrated in FIG. 29. The user typically either logs in byinserting the user's User Name and password or, if not a member, justclicks the “Check Out” button (or a similar type of a button) preferablylocated at the bottom of a “Non-Member” column located on the Check Outpage. In either case, a “Shipping Address” dialog is preferablydisplayed, as is shown in FIG. 30. The desired shipping information ispreferably entered by the user in the fields typically provided(address, city, state/province, zip postal code, daytime phone, cellphone, e-mail address, facsimile number, pager number and/or the like).If the “Ship to” address and billing address are the same, the user thentypically clicks (checks) the “Use The Same Address For Billing” box (ora similar type of a box). If, however, a separate billing address isrequired, the user should leave that box unchecked. The user should thenclick on the “Next Page” button (or a similar type of a button), and apage will typically be provided on which the user can enter the correctbilling address information. When completed, the user should again clickon the “Next Page” button.

In a second step of the check out process, payment information ispreferably entered in the fields of a dialog provided, as is shown inFIG. 31. The user should then read the “Terms and Conditions of Sales”policy that preferably appears, click the box next to the acceptancepolicy to check it, and click the “Next Page” button. The 1stPricingonline or other designated web site (or other web site, provider,database and/or the like) preferably accepts American Express, Visa,MasterCard, Discover Card and/or other credit cards, and preferably allcredit card information is transmitted to this web site or the like viaa secure server or “pay on account” and “pay over the phone.” The usershould then click the “Next Page” button to proceed.

In a final step before placing an order, all of the inputted informationwill preferably be displayed on the online 1stPricing or otherdesignated web site (or offline or otherwise) in a dialog as is shown inFIG. 32, and should be reviewed closely by the user to ensure theaccuracy of this information. Once finished, the user should click the“Submit Order” button (or a similar type of a button), or if changes areneeded or desired, the “Change Fields” button (or a similar type of abutton). The billing address input by the user preferably matches thebilling address of the credit card employed in order to ensure asuccessful transaction. In this manner, the ordering process may becompleted. An order acknowledgment dialog, as is shown in FIG. 33, willpreferably then display the order Reference Number, and an e-mailmessage will preferably be sent to the user showing the contents of theuser's order. A customer service representative will preferably contactthe user within 24 to 48 hours to verify all facets of the user's order.Once this step has been completed, generally the order will be placed,the provided credit card will be charged, and the construction or otherproducts ordered will be manufactured or ordered from a selecteddistributor (or other third party or entity), and then shipped to theconstruction site (or to some other required or desired location).

Exportation of a Price Schedule—FIG. 34

As is shown in FIG. 34, an export function of a generated price schedule(FIG. 21) in the online 1stPricing or other designated web site onlinedatabase, or offline or other database, preferably permits the priceschedule to be exported as a standalone object into a database in theform of various common computer applications or formats including, butnot limited to, Excel, Word, Plain Text, HTML, XML, PDF and/or the like.

Dynamic Product Cart Technology In contrast with a “Static Product Cart”technology, the present invention is a new “Dynamic Product Cart”technology preferably having the features that are described below.

Characteristics of the “Dynamic Product Cart” Technology

-   -   It is not a “standard” (traditional) “off the shelf” type of        shopping cart technology that can be purchased commercially for        selling standard products. In contrast, it is a “custom”        shopping cart technology that has intelligence. (“Off the shelf”        shopping cart technology does not know where a user is located        at the time of pricing. It prices an object, such as a book, and        then asks the user for his address to calculate shipping        charges. In contrast, the systems and methods of the present        invention often ask a user for his zip code and then prices one        or more products (or prices such products nationally, or using        other regional or area information). Product price, in some        situations, can be different in every zip code. For example, the        price for an identical windows may be more in Beverly Hills,        Calif., than in Long Beach. (This is known as “dynamic”        pricing.) Then, the shipping cost is calculated.    -   Its pricing system can typically perform complex calculations        “on the fly” (on demand). With this system, each building        material manufacturer/distributor or other third party or entity        (which generally employs a different method for pricing its        products, and product options) can develop a unique pricing        scheme that can be programmed into the system. The system can        then calculate, for example, square footage pricing, linear        footage pricing, perimeter footage pricing, average pricing,        other types of pricing, one time fees and/or one time fees based        upon an independent variable being added (if then statement) on        top of adding the base unit list price for the building material        according to zip code or U.S. or foreign area or region or        nationally.    -   Pricing glass may be by the square foot, whereas pricing block        frame can be by the perimeter foot, or a one time fee, with        slope still calculated by length. A user may key in a product        type with specific options by, for example, clicking “Add to        Cart.” The system can then calculate the price on demand. In the        case of architectural CAD, a list of options may be sent to a        database, with the specifications then being calculated to        provide line-item pricing. This “on demand” type pricing permits        the pricing of virtually millions of different pricing demands,        typically in just seconds. New construction, flush fin, block,        windows having slope sill frames and different types of glass,        and thicknesses thereof, can be priced in this manner. For        example, a 71 15/16×47⅜ inch net frame size full casement bay        window having paint grade head and seat board, fold down cranks        with low E, gray and 3/16″ thick glass would typically compute a        base list of window size and add the one time fee for the head        and seat board, add the one time price for the folding crank        handles, add a square footage charge for Low E and gray glass,        and then add a 3/16″ glass thickness square foot charge.        Additionally, grids on top window panels only, and windows        tempered on the bottom vent only, can be priced. It also        typically permits a user to order “rough opening” size windows        (using a stud to stud measurement) in comparison with “net frame        size” windows (in which the size that is ordered is the size        that is produced).    -   Shipping costs, as set forth by a manufacturer, distributor or        other third party or entity (typically a one time fee or a fee        that changes as an order increases in size), can be calculated.    -   It can be used to price products other than windows (alone or in        addition to windows), and is not limited to “new construction”        and/or “standard size” windows or products. It can provide a        price quote for a wide variety of “custom” products.    -   It can produce a price quote for more than one type of building        (or other) material or component, for example, for a kitchen        window, a front door and a garage door.    -   It can produce, or alter, the prices for more than one type of        building (or other) material or component, whether the same or        different, with more than one feature, for example, a window        that has gray glass and Low E glass, and has a glass thickness        of ¼″, and has a block frame, and measures 8′×4′ in size, and        has a horizontal grid pattern (one, two, three, four, five or        all six of these characteristics).    -   Comparison pricing of products (i.e. for the same product using        a wide variety of different product manufacturers, distributors        or other third parties or entities) can be performed.    -   Items within any zip code region, or other region or area,        within the United States or abroad, or nationally or        internationally can be priced.    -   Zip codes are often used.    -   This technology uses a software design tool.    -   This technology uses a plug-in (add-on) computer software code.    -   Architectural, civil, industrial or other parametric symbols are        often inserted into a construction (or other) plan or drawing.    -   A price schedule may be created from architectural CAD objects.

As is described hereinabove, the methods and systems of the presentinvention are revolutionary, and solve many of the problems that havelong been associated with previous type devices.

Sources of Materials

All of the materials and equipment that are employed in the methods andsystems of the present invention are commercially available from sourcesthat are known by those of ordinary skill in the art.

While the present invention has been described herein with specificity,and with reference to certain preferred embodiments thereof, those ofordinary skill in the art will recognize numerous variations,modifications and substitutions of that which has been described andillustrated which can be made, and which are within the scope and spiritof the invention. It is intended that all of these modifications andvariations be within the scope of the present invention as described,illustrated and claimed herein, and that the invention be limited onlyby the scope of the claims which follow, and that such claims beinterpreted as broadly as is reasonable. For example, various elements,steps and/or limitations of the methods and systems or the invention, orother elements, steps and/or limitations, may be added, removed and/orotherwise modified in a manner known by those having ordinary skill inthe art using the detailed teachings and forty four illustrations thatare present herein.

Throughout this document, various patents, web sites and/or otherpublications have been cited. The entireties of each of these patents,web sites and other publications are hereby incorporated by referenceherein. All of the web sites that are referred to herein may readily belocated by those having ordinary skill in the art by performing a searchon the Internet using a Google, Yahoo or other search engine and one ora plurality of relevant key words, such as 1st Pricing, 1stWindows,Government, Whitehouse, address, phone number, database, publicationand/or the like, as is well known by those having ordinary skill in theart. Further, the 1stPricing and 1stWindows online databases that arediscussed herein are present at the 1stPricing and 1stWindows web sites,respectively.

What is claimed is:
 1. A non-transitory computer readable medium usableby a computer that includes a processor and a memory, the mediumcomprising: an add-on computer software code that runs as an internalcomponent within a software design tool on the computer, whereinexecution of the add-on computer software code by the processor causesthe computer to generate a price schedule for a construction plan filecreated by the software design tool, the construction plan fileincluding one or more construction plan elements, by at least:transmitting data corresponding to the one or more construction planelements from the computer to a database storing current pricing datafor construction materials; receiving from the database pricing data forthe one or more construction plan elements; and generating the priceschedule from the received pricing data.
 2. The medium of claim 1wherein execution of the add-on computer software code further causesthe computer to generate a price schedule for a construction project byat least: inserting one or more parametric symbols selected by a userinto the construction plan file, wherein the parametric symbolscorrespond to one or more construction plan elements.
 3. The medium ofclaim 2 wherein the price schedule includes a total cost for all of theconstruction plan elements corresponding to the inserted parametricsymbols.
 4. A non-transitory computer readable medium usable by acomputer that includes a processor and a memory, the medium comprising:an add-on computer software code that runs as an internal componentwithin a software design tool on the computer, wherein execution of theadd-on computer software code by the processor causes the computer togenerate a price schedule for a construction plan file created by thesoftware design tool, the construction plan file including one or moreconstruction plan elements, by at least: extracting data from theconstruction plan file, wherein the data indicates the one or moreconstruction plan elements; transmitting the extracted data from thecomputer to a database storing current pricing for constructionmaterials; receiving from the database pricing data for the one or moreconstruction plan elements; and generating a price schedule based on thereceived pricing data.
 5. The medium of claim 4 wherein execution of theadd-on computer software code further causes the computer to generate aprice schedule for the construction plan file by at least: inserting theprice schedule into the construction plan file.
 6. The medium of claim 4wherein execution of the add-on computer software code further causesthe computer to generate a price schedule for the construction plan fileby at least: inserting the price schedule into a file separate from theconstruction plan file.
 7. A non-transitory computer readable mediumusable by a computer that includes a processor and a memory, the mediumcomprising: an add-on computer software code that runs as an internalcomponent within a software design tool on the computer, whereinexecution of the add-on computer software code by the processor causesthe computer to generate a price schedule for a construction plan filecreated by the software design tool, the construction plan fileincluding one or more construction plan elements, by at least:transmitting data corresponding to the one or more construction planelements from the computer to a database storing current pricing forconstruction materials; receiving from the database a first set ofpricing data for the one or more construction plan elements; generatinga first price schedule from the received first set of pricing data;receiving from the database a second set of pricing data for the one ormore construction plan elements; and generating a second price schedulefrom the received second set of pricing data.
 8. The medium of claim 7wherein the first set of pricing data corresponds to prices from a firstset of manufacturers for the one or more construction plan elements, andthe second set of pricing data corresponds to prices from a second setof manufacturers for the one or more construction plan elements.
 9. Themedium of claim 7 wherein the first set of pricing data corresponds toprices from a first set of distributors for the one or more constructionplan elements, and the second set of pricing data corresponds to pricesfrom a second set of distributors for the one or more construction planelements.
 10. The medium of claim 7 wherein the first set of pricingdata corresponds to prices associated with a first geographic area, andthe second set of pricing data corresponds to prices associated with asecond geographic area.
 11. The medium of claim 7 wherein the second setof pricing data corresponds to prices associated with green alternativesto construction materials associate with the first set of pricing data.12. A non-transitory computer readable medium usable by a computer thatincludes a processor and a memory, the medium comprising: an add-oncomputer software code that runs as an internal component within asoftware design tool on the computer, wherein execution of the add-oncomputer software code by the processor causes the computer to generatea price schedule for a construction plan file created by the softwaredesign tool, the construction plan file including one or moreconstruction plan elements, by at least: transmitting data correspondingto the one or more construction plan elements from the computer to adatabase storing current pricing for construction materials; receivingfrom the database pricing data for the one or more construction planelements for which pricing data is available; and generating a scheduleindicating, for each of the one or more construction plan elements, theavailable pricing data or an indication that pricing data is notavailable.
 13. A non-transitory computer readable medium usable by acomputer that includes a processor and a memory, the medium comprising:an add-on computer software code that runs as an internal componentwithin a software design tool on the computer, wherein execution of theadd-on computer software code by the processor causes the computer togenerate a price schedule for a construction plan file created by thesoftware design tool, the construction plan file including one or moreconstruction plan elements, by at least: transmitting data correspondingto the one or more construction plan elements from the computer to adatabase storing current pricing for construction materials; receivingfrom the database pricing data for the one or more construction planelements; generating a price schedule from the received pricing data;and inserting the price schedule into the construction plan file.
 14. Anon-transitory computer readable medium usable by a computer thatincludes a processor and a memory, the medium comprising: an add-oncomputer software code that runs as an internal component within asoftware design tool on the computer, wherein execution of the add-oncomputer software code by the processor causes the computer to generatea schedule for a construction plan file created by the software designtool, the construction plan file including one or more construction planelements by at least: transmitting data corresponding to the one or moreconstruction plan elements from the computer to a database storingcurrent pricing for construction materials; receiving from the database,green information for any of the one or more construction plan elements,wherein the green information indicates whether or not the constructionplan elements fulfill one or a plurality of predetermined environmentalor efficiency criteria or requirements, or both; and generating theprice schedule including the received green information.
 15. The mediumof claim 14 wherein execution of the add-on computer software codefurther causes the computer to generate a schedule for the constructionplan file by at least: receiving from the database pricing data for theone or more construction plan elements; and generating the schedule toinclude the received pricing data.
 16. A non-transitory computerreadable medium usable by a computer that includes a processor and amemory, the medium comprising: an add-on computer software code thatruns as an internal component within a software design tool on thecomputer, wherein execution of the add-on computer software code by theprocessor causes the computer to generate a price schedule for aconstruction plan file created by the software design tool, theconstruction plan file including one or more construction plan elements,by at least: assigning a code to at least one of the construction planelements; transmitting the assigned code from the computer to a databasestoring current pricing data for construction materials; receiving fromthe database pricing data for the at least one construction planelement, the pricing data being at least partially based on the assignedcode; and generating a price schedule from the received pricing data.17. The medium of claim 16 wherein execution of the add-on computersoftware code further causes the computer to generate a price schedulefor the construction project by at least: transmitting geographicinformation to the database.
 18. The medium of claim 17 wherein thepricing data is at least partially based on the geographic information.19. A system for creating a pricing schedule for a construction projectcomprising: (a) a computer having a processor coupled to a memory; (b) asoftware design tool configured to provide on the computer aconstruction plan file having one or more construction plan elements;(c) a database including pricing data for the one or more constructionplan elements; and (d) an add-on computer software code that runs on thecomputer as an internal component within the software design tool andincludes one or more parametric symbols corresponding to the one or moreconstruction plan elements, the one or more parametric symbols beingselectable by a user for insertion into the construction plan file,wherein the add-on computer software code when executed by the computercauses the computer to: (i) insert one or more parametric symbolsselected by the user into the construction plan file; (ii) transmit datacorresponding to the inserted parametric symbols from the computer tothe database; (iii) receive from the database pricing data for one ormore construction plan elements corresponding to the inserted parametricsymbols; and (iv) generate a price schedule from the received pricingdata.
 20. The system of claim 19 wherein the price schedule includes atotal cost for all of the construction plan elements corresponding tothe inserted parametric symbols.